确定在 WPF 中裁切文本的方式的因素
本文关键字:文本 方式 WPF | 更新日期: 2023-09-27 18:36:49
我有 2 台 Windows 7 机器,它们具有相同的自定义 .net 4.5.1 WPF 应用程序二进制文件和相同版本的 .net 框架 (4.5.1),连接到相同大小和分辨率的相同显示器。我有一个具有相同数据的文本块,但文本对于框来说太长了。两台计算机上的窗口中的文本都设置为 100% 放大。
出于某种奇怪的原因,文本在每个系统上的不同位置被修剪(WordElipsis),因此它看起来不同并且以非确定性的方式运行,因为两台机器上的其他所有内容都相同。
WPF 使用哪些因素来确定剪裁文本的位置?
<TextBlock
Margin="5,5,0,0"
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
x:Name="StackPanel"
FontSize="10"
FontFamily="Gill Sans MT"
TextTrimming="WordEllipsis"
TextWrapping="Wrap"
ToolTip="{Binding MyThing.Title}">
<local:BindableInline x:Name="titleTextBlock" Text="{Binding MyThing.Title}"/>
</TextBlock>
花了一段时间才弄清楚,但事实证明问题是字体 - Gill Sans MT 未安装在其中一台机器上,这意味着它正在回退到另一种略有不同的内置字体,导致修剪发生在不同的地方。解决方法是将字体安装到计算机上或将字体与应用程序打包在一起。