HighTechTalks DotNet Forums  

Re: Labels y fonts

Dotnet Data Tools microsoft.public.dotnet.datatools


Discuss Re: Labels y fonts in the Dotnet Data Tools forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old   
trinchsoft trinchsoft
 
Posts: n/a

Default Re: Labels y fonts - 05-23-2007 , 02:50 PM






Hola jose,
yo estoy haciendo algo perecido, bueno diria que el problema que tengo
es el mismo que el tuyo. y lo sulucione de esta manera.

lo que quieria pintar con GDI es un texto con formato(en mi caso utilizo
RTF), lo que hago es interpretar la cadena y clasificar las palabras
(cadena, color, tamaņo, tipo de letra)
y lo coloco en un arreglo de palabras.
luego recorro el areglo y utilzo un drawString para pintarlo, ahora
hasta ahi parace todo bien, que supongo que tu pensaste algo parecido,
el problema es que cada tipo de letra tiene diferentes tamaņos y para
eso utilce algunas funciones del fontFamily para calcular el heigh de
cada letra y pintarlas a todas en una misma linea.

en fin..

aca te mando un extracto de la parte del pintado, ojala te sirva( en
este codigo no guardo el tipo itailc, bold underline, recien lo estoy
haciendo, solo uso regular ).

for (int j = 0; j < m_Texts.Count; j++)
{

Font font = new Font(m_Texts[j].FontName,
m_Texts[j].Size, FontStyle.Regular, GraphicsUnit.Point);
SizeF size = g.MeasureString(m_Texts[j].Text, font);

float baseLineOffset = (font.Size /
(float)font.FontFamily.GetEmHeight(font.Style)) *
(float)font.FontFamily.GetCellAscent(font.Style);
float baseLineOffsetInPixels = (g.DpiY / 72.0f) *
baseLineOffset;

point.Y = PosY + (heightMax -
baseLineOffsetInPixels);
SolidBrush brush = new SolidBrush(
m_Texts[j].Color);
g.DrawString(m_Texts[j].Text, font, brush, point.X,
point.Y);
point.X += size.Width;
}


la variable heightMax es el maximo heigh de toda las palabras.

cualquier cosa, derepente nos podemos ayudar con nuestros proyectos.
ya que por lo que lei, estamos haciendo cosas muy parecidas.



*** Sent via Developersdex http://www.developersdex.com ***

Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.