none
Como calcular el ancho del bitmap segun la altura de la letra RRS feed

  • Pregunta

  • Hola, estoy intentando hacer una aplicacion en la cual tengo que meter texto en un picturebox, la altura de este texto varia segun el

    tamaño de la fuente y lo que no se como hacer es como calcular el tamaño que va a ocupar este texto en drawbitmap. Supuestamente seria

    el ancho del font * el numero de lineas, pero esto no es asi, no se como calcular lo que me ocupara todo el texto.... me imagino que

    tambien habrá que calcular el espacio de la interline, pero esto no se como se hace.

    el codigo es este:

    'el texto lo introduzco en un formulario con un richtextbox
    'y en otro formulario tengo el panel y el picturebox

     Panel1.Width = Form1.Richtextbox1.Width

        ' Poner el ancho del picturebox multiplicando el font.height del texto por el numero de lineas
        
     Dim AnchoPicture As Integer = (Form1.Richtextbox1.Font.Height * numlineas - 1)

            Panel1.Height = Form1.Richtextbox1.Height + AnchoPicture


                drawbitmap = New Bitmap(Form1.Richtextbox1.Width, Form1.Richtextbox1.Height + AnchoPicture)
                graph = Graphics.FromImage(drawbitmap)
                PictureBox1.Image = drawbitmap
                graph.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
             
                'escribir el texto en Picturebox
                graph.DrawString(TextoGrafico, Form1.Richtextbox1.Font, Brushes.White, PictureBox1.Location)

    viernes, 30 de noviembre de 2012 12:21

Todas las respuestas

  • martes, 4 de diciembre de 2012 0:03
  • Hola, he utilizado esto:  

    DimrichtexboxSize AsSize= TextRenderer.MeasureText(Form1.richtexbox1.text, Form1.richtextbox1.Font)

     AltoSize=richtexbox.Height                                                                                      pero esto no me da la medida correcta de la fuente pues cuando lo utilizo en el picturebox no me coincide. Quisiera utilizar Graphics.MeasureString(), pero si cambio "textrender" por graphics.measurestring() me da un error. Solo he conseguido que me funcione utilizando esto en el evento "PictureBox1_Paint".                    Mi pregunta es: ¿No puedo desde el mismo sitio donde hago textrender poner graphics.measure?. yo solo quiero que me de la medida correcta de lo que ocupara la fuente elegida y el tamaño elegido en un picturebox.

     

    martes, 4 de diciembre de 2012 18:26
  • Decir "me da un error" y no mostrar el error es contraproducente.  Detállenos el error en su respuesta para poder ayudarle.  Incluya el código en cuestión para poder tener el contexto del error e indíquenos en qué línea aparece el error.


    Jose R. MCP
    Code Samples

    martes, 4 de diciembre de 2012 19:24