Establecer superíndice y subíndice en texto formateado en wpf

¿Cómo puedo establecer un texto como subíndice / superíndice en FormattedText en wpf

Usas Typography.Variants :

 Normal Text Superscript Text Subscript Text  

Puede usar algo como 5x4 + 4 .

Sin embargo, hasta donde yo sé, tendrá que reducir el tamaño de letra usted mismo.

Usé una transformación de diseño porque Typography.Variants menudo no funciona:

            

La ventaja de usar un LayoutTransform es que es insensible al LayoutTransform . Si el tamaño de fuente se cambia después, este superíndice funciona donde se rompe la configuración de FontSize explícita.

Es interesante observar que para algunos caracteres (m 2 , m 3 , etc.) no se necesita un superíndice, pero se puede usar el carácter Unicode. Por ejemplo:

  

Esto mostraría m 3 .

No sé si necesita esto para trabajar con FormattedText específicamente , o quiere decir derivaciones de Inline, pero lo siguiente funcionará en Inlines, incluso si Typography.Variants = “Superíndice” no funciona.

 TextRange selection = new TextRange(document.ContentStart, document.ContentEnd); selection.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Superscript); 

¡Espero eso ayude!

Typography.Variants funciona solo para fonts de tipo abierto . Si no desea que sus superíndices / subíndices vayan más allá del texto actual, puede usar algo como lo siguiente:

  1 H 2  

El ajuste de superíndice funciona bien con el siguiente código:

  2  

Establecer la alineación base para el subíndice en la etiqueta de Span no funcionó para mí. Probé el siguiente código y funcionó bien.

     

Esto es lo único que funcionó para mí. También le da más control sobre la alineación y el tamaño de la fuente.

  3 x 32)  
    Intereting Posts