4

我有一个 Silverlight OOB 应用程序。一些 TextBlocks(但不是全部)已经开始表现得很奇怪。在设计器中查看时,它们是我想要的尺寸。当我运行该应用程序时,它们看起来大约大 1pt。

我用 Silverlight Spy 进行了检查,字体大小/粗细与设计时相同。如果我在设计模式下使字体太小,它们在运行时会出现正确的大小。如果我在运行时使用 Silverlight Spy 使它们太小 1pt,它们看起来大小合适。Silverlight Spy 显示 TextBlocks 不受样式影响。

这可能是什么原因造成的?我正在使用 VS 2010 和 Silverlight 5。

4

3 回答 3

2

在我观察到 WPF 或 Silverlight 中字体渲染的差异的情况下,几乎总是由于FontFamily不同而不是FontSize. 如果可以,请使用 Silverlight Spy 验证字体系列实际上是否相同。

有趣的是,即使有效字体系列相同,也可能存在差异。在我们的一个应用程序中,我们使用了一种复合FontFamily定义,该定义使用 Segoe UI 处理大多数西方字形范围,但使用衬线字体用于希腊字形范围以更好地区分这些字符(这是一个金融应用程序)。我注意到编辑器中的行高与运行时应用程序中的行高略有不同。似乎编辑器并不总是正确地应用复合字体(或者在某些 VS2012 更新之前没有)。

于 2013-11-12T14:10:05.253 回答
0

检查是否存在任何转换

于 2013-11-05T14:28:21.127 回答
0

我在标签、按钮和复选框方面遇到了这个问题。在使用 WPF 检查器查看之后,我注意到上面每个文本中的文本都包含一个 TextBlock 来显示实际文本,并且我将FontSizeText Block 的默认值设置为 13,然后覆盖了我指定的值对于(例如)标签。

这解决了我

<ControlTemplate x:Key="LabelTemplate" TargeType="Label">
    <TextBlock Text="{TemplateBinding Content}" FontSize="{TemplateBinding FontSize}" />
</ControlTemplate>


<Style TargetType="{x:Type Label}">
    <Setter ... etc. etc. other styling I had already in here />
    <Setter Property="Template" Value="{StaticResource LabelTemplate}" />
</Style>
于 2017-08-15T10:18:42.697 回答