A volte può capitare di avere la necessità di dovere misurare le dimensioni di un testo e ritrovarsi orfani di Graphics.MeasureString/TextRenderer.MeasureText dei WinForms può portare a dei momenti di sconforto…
L’equivalente WPF è:
public Size Measure(string text, double fontSize, string typeFace)
{
FormattedText ft = new FormattedText(text,
CultureInfo.CurrentCulture,
FlowDirection.LeftToRight,
new Typeface(typeFace),
fontSize,
Brushes.Black);
return new Size(ft.Width, ft.Height);
}
Mentre in Silverlight è necessario un piccolo workaround:
public Size Measure(string text, double fontSize, string fontFamily)
{
TextBlock tb = new TextBlock()
{
Text = text,
FontSize = fontSize,
FontFamily = new FontFamily(fontFamily)
};
return new Size(tb.ActualWidth, tb.ActualHeight);
}
Technorati Tags:
MeasureString