[ad_1]
我发现当文本大小为 100 或更大时,至少一种 ttf 字体在 WPF (4.0) 中消失。 这是一个已知的错误?
例如
可以看出:
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="99" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />
这不能:
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="100" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />
当通过渲染变换放大文本时,这也适用:
可以看出:
<Grid Height="200"> <TextBlock x:Name="tb" FontFamily="Roboto" FontSize="50" Text="abcdef" /> <Grid.RenderTransform> <ScaleTransform ScaleX="1.9999" /> </Grid.RenderTransform> </Grid>
但这不能:
<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 解决了这个问题 展示。
<textblock fontfamily="Roboto" fontsize="110" text="abcdef" textoptions.textformattingmode="Display" />
解决方案3
将模式设置为“理想”对我来说很有效。
[ad_2]
コメント