什么决定了文本在WPF中的修剪方式
问题描述:
我有两台Windows 7机器,它们具有相同的自定义.net 4.5.1 WPF应用程序二进制文件和相同版本的.net framework(4.5.1),连接到相同以相同的尺寸和分辨率进行监视。我有一个TextBlock具有相同的数据,但文本太长而无法使用。两台机器上的文本都设置为100%放大。什么决定了文本在WPF中的修剪方式
由于一些奇怪的原因,在每个系统上的不同位置修剪文字(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>
答
花了一段时间来弄明白,但事实证明这个问题是字体 - 吉尔三世MT不是机器上的意义,它是回落到另一个内置的字体略有不同引起一个装修剪发生在另一个地方。修复方法是将字体安装到机器上或package the font with the application。
捕捉到设备像素; dpi,也许... –
为了清楚起见,你是指TextBlock控件? TextBox没有明确的文本修剪选项。 – cokeman19
是的TextBlock - 认为更正,我更新了问题,并提供示例代码。 – alastairtree