【问题标题】:What determines the way text is trimmed in WPF什么决定了 WPF 中文本的修剪方式
【发布时间】:2016-06-12 20:31:43
【问题描述】:

我有 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>

【问题讨论】:

  • 捕捉到设备像素; dpi,也许...
  • 为了清楚起见,您指的是 TextBlock 控件吗? TextBox 没有明确的文本修剪选项。
  • 是的 TextBlock - 考虑更正,我已更新问题并提供示例代码。

标签: c# .net wpf .net-4.5 texttrimming


【解决方案1】:

花了一段时间才弄明白,但事实证明问题出在字体上 - Gill Sans MT 未安装在其中一台机器上,这意味着它正在退回到另一种略有不同的内置字体,导致修剪发生在不同的地方。解决方法是将字体安装到机器上或package the font with the application

【讨论】:

    猜你喜欢
    • 2012-11-18
    • 2015-01-12
    • 1970-01-01
    • 2011-02-07
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多