tag style images examples example bootstrap attribute text silverlight-4.0 fontmetrics

text - style - seo image alt tag example



Medir de manera programática la cadena de texto en píxeles para Silverlight (1)

En WPF hay el texto formateado en el espacio de nombres System.Windows.Media MSDN FormattedText que puedo usar así:

private static Size GetTextSize(string txt, string font, int size, bool isBold) { Typeface tf = new Typeface(new System.Windows.Media.FontFamily(font), FontStyles.Normal, (isBold) ? FontWeights.Bold : FontWeights.Normal, FontStretches.Normal); FormattedText ft = new FormattedText(txt, new CultureInfo("en-us"), System.Windows.FlowDirection.LeftToRight, tf, (double)size, System.Windows.Media.Brushes.Black, null, TextFormattingMode.Display); return new Size { Width = ft.WidthIncludingTrailingWhitespace, Height = ft.Height }; }

¿Hay un buen enfoque en Silverlight para obtener el ancho en píxeles (en este momento la altura no es importante) además de hacer una llamada al servidor?


Un enfoque que he visto usado, que puede que no funcione en su instancia particular, es lanzar el texto en un TextBlock sin estilo, y luego obtener el ancho de ese control, de esta manera:

private double GetTextWidth(string text, int fontSize) { TextBlock txtMeasure = new TextBlock(); txtMeasure.FontSize = fontSize; txtMeasure.Text = text; double width = txtMeasure.ActualWidth; return width; }

Es un hack, sin duda.