文本块中的文本在字体大小 >99 时消失


我发现当文本大小为 100 或更大时,至少一种 ttf 字体在 WPF (4.0) 中消失。 这是一个已知的错误?

例如
可以看出:

XML
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="99" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />

这不能:

XML
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="100" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />

当通过渲染变换放大文本时,这也适用:

可以看出:

XML
<Grid Height="200">
  <TextBlock x:Name="tb" FontFamily="Roboto" FontSize="50" Text="abcdef" />
  <Grid.RenderTransform>
  <ScaleTransform ScaleX="1.9999" />
  </Grid.RenderTransform>
  </Grid>

但这不能:

XML
<Grid>
  <TextBlock x:Name="tb" FontFamily="Roboto" FontSize="50" Text="abcdef" />
  <Grid.RenderTransform>
  <ScaleTransform ScaleX="2" />
  </Grid.RenderTransform>
  </Grid>

文本块:
1)仍然排列良好,并且具有适当的实际高度和实际宽度值。
2)具有正常的不透明度和可见度值
3)如果它有背景,则背景显得精细/尺寸合适等。

另外值得注意的是:
1)这个字体是谷歌提供的,否则似乎工作得很好。 我什至在字体编辑器中打开它,看起来很正常
2)这是TTF字体
3)该字体在 MS Word 等所有字体大小下都可以正常工作,但是
4)如果您将使用此字体的Ms Word文件以大尺寸发布到XPS,则该字体在XPS文档中不可见(可选择,但不可见。就好像它的不透明度为0)
4)这也适用于内容控件和文本框

我不只是“选择另一种字体”的原因是因为我的程序使用了很多这样的字体。 我无法手动检查每一项!

有没有人见过这个? 有任何想法吗?

该字体可以从以下网址下载 这里[^]

解决方案1

我已阅读 Microsoft 的文档,它没有说明任何有关 FontSize 限制的内容。 粘贴以下喜欢作为参考:

http://msdn.microsoft.com/en-us/library/office/aa200988%28v=office.10%29.aspx[^]

[^]

我给您的建议是前往 Microsoft WPF 论坛并询问 Microsoft 员工回答的这个问题。 我不认为这对程序员来说是一个常见问题,但你永远不知道:

[^]

解决方案2

我最终通过指定 textformattingmode 解决了这个问题 展示

XML
<textblock fontfamily="Roboto" fontsize="110" text="abcdef" textoptions.textformattingmode="Display" />

解决方案3

将模式设置为“理想”对我来说很有效。

コメント

タイトルとURLをコピーしました