wpf fonts font-size

¿Cómo calcular la altura de la fuente en WPF?



fonts font-size (2)

El rango de altura máxima para una fuente se puede calcular utilizando su propiedad LineSpacing , que es una cifra proporcional para la fuente. Esto se puede usar para dar una altura de línea que pueda acomodar todos los glifos para esa fuente en un tamaño particular.

FontFamily fontFamily = new FontFamily("Segoe UI"); double fontDpiSize = 16; double fontHeight = Math.Ceiling(fontDpiSize * fontFamily.LineSpacing);

Resultado:

22.0

Esta figura contendrá una pequeña cantidad de leading que es deseable cuando se necesita una altura para las filas de texto (de modo que los ascendentes y descendentes de las filas de texto adyacentes tengan espacios).

Para una FontFamily ¿cómo recupero / calculo programáticamente el rango de altura máxima para esa fuente en un tamaño de fuente en particular?

Necesito un valor para establecer la altura de un bloque de texto que muestre la fuente en el tamaño de letra especificado, esto se debe realizar de manera programática.

Necesito un valor que tenga en cuenta ascendentes y descendientes, etc.

Actualizar

Para aclarar, necesito el rango de altura máxima para toda la FontFamily , no la altura de un texto de muestra en esa fuente. No sé cuál será el texto por adelantado.


Utilice la clase System.Windows.Media.FormattedText .

Ejemplo:

FormattedText ft = new FormattedText("Quick Brown Fox Jumps Over A Lazy Dog.", CultureInfo.CurrentCulture, CultureInfo.CurrentCulture.TextInfo.IsRightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight, new Typeface("Verdana"), 9, new SolidColorBrush(Colors.White) Double maxHeight = ft.MaxTextHeight;