43

FormattedTextWPFでテキストを下付き/上付きとして設定するにはどうすればよいですか?

4

8 に答える 8

49

Typography.Variantsを使用します:

<TextBlock>
    <Run>Normal Text</Run>
    <Run Typography.Variants="Superscript">Superscript Text</Run>
    <Run Typography.Variants="Subscript">Subscript Text</Run>
</TextBlock>
于 2010-01-19T17:54:53.697 に答える
18

のようなものを使用できます<TextBlock>5x<Run BaselineAlignment="Superscript">4</Run> + 4</TextBlock>

ただし、私の知る限り、フォントサイズを自分で縮小する必要があります。

于 2010-01-19T17:43:22.010 に答える
17

一部の文字 (m 2、 m 3など) では上付き文字は必要ありませんが、Unicode 文字を使用できることに注意してください。例えば:

<Run Text=" m&#x00B3;" />

これは m 3を示します。

于 2016-12-19T13:19:21.203 に答える
12

Typography.Variants多くの場合うまくいかないため、レイアウト変換を使用しました。

<TextBlock Text="MyAmazingProduct"/>
 <TextBlock Text="TM">
  <TextBlock.LayoutTransform>
   <!-- Typography.Variants="Superscript" didn't work -->
   <TransformGroup>
    <ScaleTransform ScaleX=".75" ScaleY=".75"/>
    <TranslateTransform Y="-5"/>
   </TransformGroup>
  </TextBlock.LayoutTransform>
 </TextBlock>
<TextBlock Text="{Binding Path=Version, StringFormat={} v{0}}"/>

a を使用する利点はLayoutTransform、フォントサイズに影響されないことです。後でフォントサイズが変更された場合、この上付き文字は、明示的な FontSize 設定が壊れている場所で機能します。

于 2014-08-07T14:23:10.483 に答える
3

FormattedTextで特に機能するためにこれが必要かどうか、またはInlineの派生を意味するかどうかはわかりませんが、Typography.Variants = "Superscript"が機能しない場合でも、以下はInlinesで機能します。

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

それが役に立てば幸い!

于 2010-10-03T23:32:27.930 に答える
3

Typography.Variants は、オープン タイプのフォントに対してのみ機能します。上付き文字/下付き文字が実際のテキストの高さを超えたくない場合は、次のようなものを使用できます。

<StackPanel Orientation="Horizontal">
    <TextBlock FontSize="10" Margin="0,5,0,0">1</TextBlock>
    <TextBlock FontSize="30">H</TextBlock>
    <TextBlock FontSize="10" Margin="0,20,0,0">2</TextBlock>
</StackPanel>
于 2010-11-01T13:12:45.657 に答える
2

これが私のために働いた唯一のものです。また、配置とフォント サイズをより詳細に制御できます。

<TextBlock Grid.Row="17">
    3 x 3<Run FontSize="6pt" BaselineAlignment="TextTop">2</Run>)
</TextBlock>
于 2015-03-13T15:55:05.973 に答える
0

上付き文字の設定は、次のコードで正常に機能します。

<TextBlock Text="(cm"  />
<TextBlock ><Span BaselineAlignment="Top" FontSize="8">2</Span></TextBlock>
<TextBlock Text=")" />

Span タグで下付き文字の Baseallignment を設定してもうまくいきませんでした。次のコードを試してみましたが、うまくいきました。

  <TextBlock Text="H"  />
  <TextBlock Text="2" Margin="-2,0,-2,0" TextBlock.LineHeight="3" >   
  <TextBlock Text="O" />
于 2013-07-16T07:47:58.737 に答える