使用 Blend Visual Studio WPF C# 为字符串中的每个字符设置不同的字体大小
Set different Font-Size for each character in a string using Blend Visual Studio WPF C#
我正在尝试创建一个正好有 7 个字符的文本框,其中前 4 个可能是中等大小,接下来的 2 个可能太大,最后一个数字可能显示为最后两位数字太大了。这确实是一件很麻烦的事情,即使在为此工作了很长时间之后也是如此。
提前致谢。
你可以按照下面的方式做一些事情
XAML
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run FontSize="8" x:Name="SmallRun">
1234
</Run>
<Run FontSize="16" x:Name="LargeRun">
34
</Run>
<Run x:Name="PowerRun">
4
</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
C#
var text = LargeRun.Text;
var firstNo = int.Parse(text.Substring(0, 1));
var secondNo = int.Parse(text.Substring(1, 1));
PowerRun.FontSize = Math.Pow(firstNo, secondNo);
我也放在了GitHub
编辑
我看到你已经编辑了你的问题。我认为我发布的大部分代码仍然相关,但您可能会做一些不同的样式。
编辑 2
代码图像 运行:
编辑 3
你可以这样做
<Run x:Name="PowerRun" BaselineAlignment="Superscript" FontSize="8">
4
</Run>
得到这个
你可以按照下面的方式做一些事情
XAML
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run FontSize="8" x:Name="SmallRun">
1234
</Run>
<Run FontSize="16" x:Name="LargeRun">
34
</Run>
<Run x:Name="PowerRun">
4
</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
C#
var text = LargeRun.Text;
var firstNo = int.Parse(text.Substring(0, 1));
var secondNo = int.Parse(text.Substring(1, 1));
PowerRun.FontSize = Math.Pow(firstNo, secondNo);
我也放在了GitHub
编辑
我看到你已经编辑了你的问题。我认为我发布的大部分代码仍然相关,但您可能会做一些不同的样式。
编辑 2
代码图像 运行:
编辑 3
你可以这样做
<Run x:Name="PowerRun" BaselineAlignment="Superscript" FontSize="8">
4
</Run>
得到这个