我怎么能在WPF设置标和下标在格式化文本在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>
设置一些文本作为下标/上标在FormattedText。
但是,据我所知,你将不得不减小字体大小。
在每次运行后添加空间是否正常?否则它工作正常。 – 2014-08-26 13:49:25
为我工作,谢谢! – 2015-05-24 23:43:05
我不知道你是否需要这个与FormattedText 专门工作,或者你的意思是行内的推导,但即使下面的工作就内联,印刷术.Variants =“Superscript”无法正常工作。
TextRange selection = new TextRange(document.ContentStart, document.ContentEnd);
selection.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Superscript);
希望它有帮助!
在我的测试中,基于RichTextBox以及其他以粗体,斜体,下划线,字体系列/颜色/大小成功的方式失败。我使用相同的.ApplyPropertyValue()与所有这些。我使用了ToggleButton,所以我验证了对齐是否已设置并记住,但没有视觉效果。 – person27 2017-10-02 19:32:38
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>
设置为上标工作正常用下面的代码:
<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" />
我使用的布局转换,因为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设置中断的情况下起作用。
这是唯一对我有用的东西。它还使您可以更好地控制对齐和字体大小。
<TextBlock Grid.Row="17">
3 x 3<Run FontSize="6pt" BaselineAlignment="TextTop">2</Run>)
</TextBlock>
有趣的是要注意,某些字符(M ,男等)不需要标,但可以使用Unicode字符。例如:
<Run Text=" m³" />
这将显示米。
- 1. 如何在openpyxl中将文本格式设置为下标
- 2. 在标签中设置日期格式的文化
- 3. WPF:如何在目标文本框具有焦点时设置标签样式?
- 4. 如何在GWT标签部件中设置文本格式
- 5. 标记了标签和换行预格式化文本
- 6. 尝试重置在WPF格式文本框控件的光标位置
- 7. 如何在WPF RichTextBox中设置纯文本格式
- 8. 文本格式在一个.NET标签
- 9. Swift:在AppDelegate中设置标签文本
- 10. 设置文本格式在ASP.Net的BoundField
- 11. 设置文本格式输出在UNIX
- 12. 如何在Silverlight RichTextBox中设置格式化文本?
- 13. 格式化包含图形的标题标签中的文本
- 14. WPF MVVM格式化文本装订
- 15. WPF - TextBlock的 - 格式化文本编程
- 16. 空白标准化和其他纯文本格式例程
- 17. 设置标签文本
- 18. 设置文本格式
- 19. 在组织模式下显示带格式化字符的格式化文本
- 20. 如何在ActionBarSherlock 4.0中设置标题文本的样式?
- 21. 在div标签中设置文本对齐方式
- 22. 在JMenu组件中设置标题文本的对齐方式
- 23. WPF中的文本框标记样式
- 24. 如何在文本末尾设置制表索引和光标
- 25. 在XYPlot上格式化点标签
- 26. 在Highcharts中格式化数据标签
- 27. 在html页面中格式化标题
- 28. 格式化日期在标题
- 29. 在Objective-C中格式化html标记
- 30. 在UITableViewCell ala Twitterrific中为iPhone设置格式和绘制文本
有一些已知的错误,至少从.Net 4.0起:http://social.msdn.microsoft.com/Forums/en/wpf/thread/f375a41b-2c36-4e51-8f6b-7ed828431412。不知道它是否固定在.Net 4.5中。 – skybluecodeflier 2012-03-20 17:35:30
如果有人得到这个与Win7的bug看看这个链接来解决它support.microsoft.com/kb/2670838 – WiiMaxx 2013-03-07 15:09:21
应该指出,Windows(和WPF)的默认UI字体支持Windows 8之前的下标或上标。 – 2013-04-05 20:02:29