如何在WPF文本框中指定字母间距或字距?
我想修改WPF文本框中字符之间的间距。如何在WPF文本框中指定字母间距或字距?,wpf,xaml,textbox,kerning,Wpf,Xaml,Textbox,Kerning,我想修改WPF文本框中字符之间的间距。 类似于CSS中可用的字母间距:5px的东西。 我认为这在XAML中是可能的;最简单的方法是什么 我找到了“”文档,发现它毫无用处 这是该页面中的代码示例: <!-- "Hello World!" with explicit character widths for proportional font --> <Glyphs FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
类似于CSS中可用的
字母间距:5px
的东西。我认为这在XAML中是可能的;最简单的方法是什么 我找到了“”文档,发现它毫无用处 这是该页面中的代码示例:
<!-- "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"
/>
同一文档页对索引
属性的功能进行了“解释”:
我不知道这是什么意思。我也不确定索引是否正确——代码中的注释提到了我不关心的“字符宽度”。我想调整字符之间的宽度
此外,没有示例说明如何将Glyphs
元素应用于文本框。当我尝试它时,我的WPF测试应用程序崩溃了
我想做的是稍微增加WPF文本框中绘制字符之间的空白。文本的长度和内容各不相同。每次有新字符时,是否必须修改
Indicies
属性?有没有一种方式可以说“让每个角色的空间比平时多20%”
有人能帮我吗 是您的选择吗
否则,您可能需要查看图像,显示前进宽度的含义。虽然我以前没有这样做过,也不知道这是否有效,但增加右侧和左侧轴承可能是您想要的 我尝试了Glyphs和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>
我可以绑定到任何字符串,不需要进行任何字符宽度检测来正确设置间距。右边距是字母之间的空格
例如:
为了它的价值 如果您可以选择将实现切换到RichTextBox,这可能比您在2013年9月发现的工作更容易。我只是为了我自己的需要而尝试它,它能满足我的需要。我不认为RichTextBox可以像排字机那样控制单个空格的紧排。但TextBox占用了额外的空间(将多个相邻空间合并为一个空间),比如HTML。我需要让空格显示与文本字符串相同的间距,RichTextBox就是这样做的
<RichTextBox x:Name="MyRichTextBox"></RichTextBox>
这是一个很好的解决方案(我投了赞成票),但这肯定会导致性能问题。我们在某些地方使用此解决方案,但我们希望在包含数百项的
ItemsControl
中使用此解决方案,这会增加渲染时间的几秒钟。在这些场景中,我们回到了常规的TextBlock
。因此,请注意/小心!这也将破坏修剪或换行文本的功能。
this.MyRichTextBox.AppendText("V A R I E D S P A C E S");