确定在 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>

确定在 WPF 中裁切文本的方式的因素

花了一段时间才弄清楚,但事实证明问题是字体 - Gill Sans MT 未安装在其中一台机器上,这意味着它正在回退到另一种略有不同的内置字体,导致修剪发生在不同的地方。解决方法是将字体安装到计算机上或将字体与应用程序打包在一起。