我想修改WPF TextBox中字符之间的间距。
类似于CSS中可用的letter-spacing: 5px的东西。
我认为这在XAML中是可能的;最简单的方法是什么?
我找到了"介绍GlyphRun对象和象形文字元素“文档,发现它非常没有帮助。
这是该页中的代码示例:
<!-- "Hello World!" with explicit character widths for proportional font -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
UnicodeString = "Hello World!"
Indices = ",80;,80;,80;,80;,80;,80;,80;,80;,80;,80;,80"
Fill = "Maroon"
OriginX = "50"
OriginY = "225"
/>同一文档页给出了Indices属性所做的“解释”:

我不知道这意味着什么。我也不确定指数是否是正确的--代码中的评论谈到了我不关心的“字符宽度”。我想调整字符之间的宽度。
此外,没有关于如何将Glyphs元素应用于TextBox的示例。当我尝试它时,我的WPF测试应用程序刚刚崩溃。
我想要做的是稍微增加WPF TextBox中绘制的字符之间的空空间。案文的长度和内容各不相同。是否每次出现新字符时都必须修改Indicies属性?有没有办法说“让它比平常多20%的空间,为每个字符”。
有人能帮我吗?
发布于 2013-09-18 16:56:22
我尝试了字形和FontStretch,但很难得到我想要的结果。我想出了一种适合我目的的方法。也许这对其他人也有帮助。
<ItemsControl ItemsSource="{Binding SomeString}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"
Margin="0,0,5,0"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>我可以绑定到任何字符串,不需要做任何字符宽度检测,以正确设置间距。右边框是字母之间的空格。
示例:

发布于 2011-04-30 18:14:28
FontStretch是你的选择吗?
否则,您可能需要查看这,这里有一个图像,显示了前进宽度的含义。虽然我以前没有这样做,也不知道这是否有效,增加左右方位可能是你想要的!
发布于 2014-05-05 02:34:46
因为它的价值。。。
如果您可以选择将您的实现切换到RichTextBox,这可能比您在2013年9月发现的工作更容易。我只是试着满足我自己的需要,而且它能满足我所需要的东西。我看不出RichTextBox有一种方法可以像排字员那样控制单个空格的裁剪。但是TextBox正在消耗额外的空间(将多个相邻的空间合并为单个空间),比如HTML。我需要空格显示与文本字符串中相同的间距,而RichTextBox会这样做。
<RichTextBox x:Name="MyRichTextBox"></RichTextBox>我不是专家,但似乎您无法在XAML中指定文本内容。我必须在代码隐藏事件中指定它:
this.MyRichTextBox.AppendText("V A R I E D S P A C E S");https://stackoverflow.com/questions/5843562
复制相似问题