Como calcular el ancho del bitmap segun la altura de la letra
Publicado por Jose Javier (1 intervención) el 30/11/2012 13:17:47
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)
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)
Valora esta pregunta
0