【发布时间】:2013-05-29 19:12:40
【问题描述】:
您可以在此处查看问题以及如何重现它:
此问题会导致文本块中最长行末尾的单词被截断。请注意最后一个TextBlock 缺少“动物”一词。
有人知道这个问题的解决方法吗?或者有什么相关信息?我需要基本上保持第二个TextBlock 的渲染和布局行为 - 但只需要所有单词都存在。
XAML 复制代码:
<Window x:Class="TextWeirdness.Application.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding Text, ElementName=ATextBox}"/>
<Setter Property="FontSize" Value="{Binding Value, ElementName=ASlider}"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
</StackPanel.Resources>
<Slider Name="ASlider" Minimum="1" Maximum="30" Value="12" />
<TextBox Name="ATextBox" Text="I love mules - best of all the animals" AcceptsReturn="True"/>
<TextBlock />
<TextBlock TextOptions.TextFormattingMode="Display"/>
</StackPanel>
</Window>
更多信息:
- 只有在文本中出现连字符(但只有减号)时才会出现问题。
- 仅当字体大小在特定的重复范围内时才会发生(不过我不知道那是什么)。
- 仅适用于某些字体。
- 宋体
- 巴克斯顿素描
- Calibri
- Calibri Light
- 寒武纪
- 坎布里亚数学
- 君士坦丁
- 牛腿
- DokChampa
- 尤菲米亚
- 全球等宽空间
- 全球无衬线字体
- 全球衬线
- 蒙古白提
- 尼亚拉
- 帕拉蒂诺列型
- 新罗马时代
【问题讨论】:
-
如果你删除
<Setter Property="HorizontalAlignment" Value="Left"/>,它仍然会发生吗? -
当
HorizontalAlignment是Stretch时问题确实消失了,但如果可能的话,我想保持这种行为。 -
对于它的价值,我看到的是空格字符 - 该字符的宽度在显示模式与理想模式下的显示方式不同
标签: wpf text formatting gdi textblock