我有一个Silverlight OOB应用程序。一些TextBlocks(但不是全部)开始表现得很奇怪。在Designer中查看时,它们的大小与我想要的大小相同。当我运行该应用程序时,它们的大小大约为1pt。
我用Silverlight Spy检查了它,字体大小/重量与设计时相同。如果我在设计模式下使字体太小,它们在运行时会出现正确的大小。如果我使用Silverlight Spy使它们在运行时太小,它们看起来大小合适。 Silverlight Spy显示TextBlocks不受样式影响。
可能导致这种情况的原因是什么?我正在使用VS 2010和Silverlight 5。
答案 0 :(得分:2)
如果我观察到WPF或Silverlight中字体渲染的差异,几乎总是由于FontFamily
不同而不是FontSize
。如果可以,请使用Silverlight Spy验证字体系列实际上是相同的。
有趣的是,即使有效字体系列相同,也可能存在差异。在我们的一个应用程序中,我们使用复合FontFamily
定义,对大多数西方字形范围使用Segoe UI,但希腊字形范围的衬线字体可以更好地区分这些字符(这是一个财务应用程序)。我注意到编辑器中的行高与运行时应用程序中的行高略有不同。看起来编辑器并不总是正确地应用复合字体(或者在某些VS2012更新之前没有)。
答案 1 :(得分:0)
检查是否存在Transforms。
答案 2 :(得分:0)
我遇到了标签,按钮和复选框的问题。看一下使用WPF检查器之后,我注意到上面每个文本中的文本都包含一个TextBlock来显示实际文本,我已经将文本块的默认FontSize
设置为13覆盖我为(例如)Label指定的值。
这将我排除在外
<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>