Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设计器中的字体与运行时的字体大小不同_C#_Silverlight_Fonts - Fatal编程技术网

C# 设计器中的字体与运行时的字体大小不同

C# 设计器中的字体与运行时的字体大小不同,c#,silverlight,fonts,C#,Silverlight,Fonts,我有一个Silverlight OOB应用程序。一些文本块(但不是全部)开始表现得异常。在Designer中查看时,它们是我想要的大小。当我运行应用程序时,它们看起来大约大1磅 我已经用Silverlight Spy检查过了,字体大小/重量与设计时相同。如果我在设计模式下使字体太小,那么它们在运行时的大小是正确的。如果我在运行时使用Silverlight Spy使它们太小1磅,则它们看起来大小合适。Silverlight Spy显示文本块不受样式影响 这可能是什么原因造成的?我正在使用VS 20

我有一个Silverlight OOB应用程序。一些文本块(但不是全部)开始表现得异常。在Designer中查看时,它们是我想要的大小。当我运行应用程序时,它们看起来大约大1磅

我已经用Silverlight Spy检查过了,字体大小/重量与设计时相同。如果我在设计模式下使字体太小,那么它们在运行时的大小是正确的。如果我在运行时使用Silverlight Spy使它们太小1磅,则它们看起来大小合适。Silverlight Spy显示文本块不受样式影响


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

检查是否存在任何差异。

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


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

我在标签、按钮和复选框方面遇到了这个问题。在使用WPF inspector查看之后,我注意到上面的每个文本中都包含一个TextBlock来显示实际文本,我将文本块的默认值
FontSize
设置为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>


您必须按ctrl+或zoom!你能提供一个小的示例应用程序来演示这个问题吗?我认为VS2010设计程序有很多缺陷。你应该试着安装2012年或2013年的试用版-也许这是设计器中的一个bug。它一直都是相同的
TextBlocks
?有没有可能你把“pt”和“px”混在一起了?你在哪个浏览器里查这些东西?有没有可能你更新了你的浏览器,并开始在那里出现奇怪的行为?你能在其他浏览器中看到同样的行为吗?我也同意Rob的观点,您可能希望升级到VS的较新版本。如果存在转换,那么为什么在设计时会出现不同的结果?当然,不一定,但它们在运行时可能会受到绑定或故事板的影响。至少,转换是我解释为什么所有检查工具都没有显示意外的字体大小值的唯一方法。@TarkaDaal好的,我还有两个想法可以缩小问题的范围:1)删除/禁用所有设计时资源。2) 为受影响的
TextBlock
s指定一个固定大小。@TarkaDaal您可以使用Silverlight Spy来验证
FontFamily
在设计器和应用程序中是否相同吗?也许这实际上不是大小差异,而是字体加载问题。@MikeStrobel就是这样。Silverlight Spy显示它们是相同的,但字体不同。你一提就明白了。解决方案是使用完整的类库语法引用字体。我想是银光虫吧。将此作为问题发布,您就可以获得赏金。