wpf 형식의 텍스트로 위첨자 및 아래첨자 설정
에서 일부 텍스트를 첨자/첨자로 설정하려면 어떻게 해야 합니까?FormattedText
WPF에서요?
<TextBlock>
<Run>Normal Text</Run>
<Run Typography.Variants="Superscript">Superscript Text</Run>
<Run Typography.Variants="Subscript">Subscript Text</Run>
</TextBlock>
이런 걸 쓸 수 있어요.<TextBlock>5x<Run BaselineAlignment="Superscript">4</Run> + 4</TextBlock>
.
단, 폰트 사이즈는 본인이 줄여야 하는 것으로 알고 있습니다.
흥미로운 점은 일부 문자(m2, m3 등)에서는 위첨자가 필요하지 않지만 유니코드 문자를 사용할 수 있다는 것입니다.예를 들어 다음과 같습니다.
<Run Text=" m³" />
이렇게 하면 m이 나옵니다3.
레이아웃 변환을 사용했습니다.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}}"/>
를 사용하는 장점LayoutTransform
폰트 사이즈에 둔감하다는 것입니다.나중에 글꼴 크기를 변경하면 이 상위 첨자는 명시적인 FontSize 설정이 중단되는 곳에서 작동합니다.
포맷된 파일을 사용하기 위해 이 파일이 필요한지 모르겠습니다.텍스트, 즉 Inline의 파생물을 의미하지만, 타이포그래피라고 해도 다음 항목은 Inline에서 작동합니다.종류="Superscript"가 작동하지 않습니다.
TextRange selection = new TextRange(document.ContentStart, document.ContentEnd);
selection.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Superscript);
도움이 됐으면 좋겠다!
타이포그래피변형은 개방형 글꼴에 대해서만 작동합니다.위첨자/아래첨자가 실제 텍스트의 높이를 벗어나는 것을 좋아하지 않는 경우 다음과 같은 방법을 사용할 수 있습니다.
<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>
나한테는 이것밖에 안 먹혔어쨌든.또한 정렬 및 글꼴 크기를 더 잘 제어할 수 있습니다.
<TextBlock Grid.Row="17">
3 x 3<Run FontSize="6pt" BaselineAlignment="TextTop">2</Run>)
</TextBlock>
슈퍼스크립트의 설정은, 다음의 코드로 정상적으로 동작합니다.
<TextBlock Text="(cm" />
<TextBlock ><Span BaselineAlignment="Top" FontSize="8">2</Span></TextBlock>
<TextBlock Text=")" />
Span 태그의 서브스크립트에 대한 Baseallocation을 설정하는 것은 효과가 없었습니다.다음 코드를 시도해보니 정상적으로 동작했습니다.
<TextBlock Text="H" />
<TextBlock Text="2" Margin="-2,0,-2,0" TextBlock.LineHeight="3" >
<TextBlock Text="O" />
언급URL : https://stackoverflow.com/questions/2095583/set-superscript-and-subscript-in-formatted-text-in-wpf
'programing' 카테고리의 다른 글
인수를 기반으로 WPF를 시작하는 방법 (0) | 2023.04.16 |
---|---|
WPF DataGrid에서 원클릭 편집 (0) | 2023.04.16 |
TextBlock에서 WPF 형식의 DateTime? (0) | 2023.04.16 |
확장창 프레임을 드래그하여 WPF 창을 이동 가능하게 하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
MVVM을 사용하여 WPF ListView 항목에서 더블 클릭 이벤트 실행 (0) | 2023.04.11 |