c# - 如何在 C# 中格式化上标字符串?

标签 c# wpf

我需要在 C# 中用上标(代码隐藏)格式化一些字符串,

例如,

输入 => 100 输出 => 10^2

哪里Output<string>Clr Property

我试过下面的代码片段,

 TextBlock _textBlock = new TextBlock();
    _textBlock.Text = "10";
    _textBlock.Inlines.Add(new Run() { BaselineAlignment  = BaselineAlignment.Superscript, Text = "2"});

作为Typography在上述情况下是只读属性,我无法设置 Typography.Variants在代码后面。

注意:请注意,这个问题不是关于渲染的,而是关于阅读 Text 的。作为string .期望值为 10^2 .在建议重复时,请检查其他问题解决这个问题。

有人可以指导我吗?

同时设置 BaselineAlignment.Superscript与上面提到的代码片段一样,它不会像上标(小字体)那样呈现,而是以相同的 FontSize 呈现。 (相反,它看起来像是单独为上标内容设置 Margin 属性,如 new Thickness(0,0,0,FontSize) )

最佳答案

上标 2 需要使用 Unicode 字符。请看这里:http://msdn.microsoft.com/en-us/library/aa664669%28v=vs.71%29.aspx

如果你想在字符串文字中使用它,你可以使用:

 var value = "10\xB2";

Live Demo

在 WPF 中,您可以使用排版变体。

Set superscript and subscript in formatted text in wpf

关于c# - 如何在 C# 中格式化上标字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23862622/

相关文章:

c# - 需要在 Wpf 中的两个效果之间创建延迟

wpf - 如何让wpf中的文本 block 闪烁?

c# - 用户选择子项后 TreeView 自动选择父项

WPF - 确定鼠标是否在 UIElement 上

c# - 内部类成员/属性可见性 (C#)

c# - 在不更改标题文本对齐方式的情况下,将 Windows 窗体 C# 中的 Listview 列的文本右对齐

c# - 如何在运行时添加 log4net appender?

c# - .Net Core 应用程序中的 Log4Net : LoggingEvent not set properly (LocationInformation porperties are set to "?")

wpf - 当 ListView 中的扩展器折叠时,无法使 WPF ListView 折叠

c# - 如何在 ASP.NET 中获取客户端打印机详细信息?