2

我有 2 台 Windows 7 机器,它们具有相同的自定义 .net 4.5.1 WPF 应用程序二进制文件和相同版本的 .net 框架(4.5.1),连接到相同大小和分辨率的相同监视器。我有一个具有相同数据的 TextBlock,但文本对于该框来说太长了。两台机器上的窗口中的文本都设置为 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>
4

1 回答 1

2

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

于 2017-02-08T10:58:24.530 回答