WPF equivalente a TextRenderer

He usado TextRenderer para medir la longitud de una cadena y, por lo tanto, dimensionar un control de forma apropiada. ¿Hay un equivalente en WPF o puedo simplemente usar TextRendered.MeasureString ?

Gracias Gishu,

Al leer sus enlaces, se me ocurrieron los siguientes, los cuales hacen el trabajo por mí:

  ///  /// Get the required height and width of the specified text. Uses FortammedText ///  public static Size MeasureTextSize(string text, FontFamily fontFamily, FontStyle fontStyle, FontWeight fontWeight, FontStretch fontStretch, double fontSize) { FormattedText ft = new FormattedText(text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface(fontFamily, fontStyle, fontWeight, fontStretch), fontSize, Brushes.Black); return new Size(ft.Width, ft.Height); } ///  /// Get the required height and width of the specified text. Uses Glyph's ///  public static Size MeasureText(string text, FontFamily fontFamily, FontStyle fontStyle, FontWeight fontWeight, FontStretch fontStretch, double fontSize) { Typeface typeface = new Typeface(fontFamily, fontStyle, fontWeight, fontStretch); GlyphTypeface glyphTypeface; if(!typeface.TryGetGlyphTypeface(out glyphTypeface)) { return MeasureTextSize(text, fontFamily, fontStyle, fontWeight, fontStretch, fontSize); } double totalWidth = 0; double height = 0; for (int n = 0; n < text.Length; n++) { ushort glyphIndex = glyphTypeface.CharacterToGlyphMap[text[n]]; double width = glyphTypeface.AdvanceWidths[glyphIndex] * fontSize; double glyphHeight = glyphTypeface.AdvanceHeights[glyphIndex]*fontSize; if(glyphHeight > height) { height = glyphHeight; } totalWidth += width; } return new Size(totalWidth, height); } 

Eche un vistazo a la clase FormattedText

Si necesita un control más granular, deberá descender al miembro AdvanceWidths del tipo GlyphTypeface. Encontré una discusión similar aquí con un fragmento de código que parece que podría funcionar.

Actualización : Parece que esto puede ser un duplicado de texto de medición en WPF .. OP por favor confirmar.