运行时显示错误的字体

10

我在一些标签(winforms)中使用Calibri字体,但当我运行程序时,这些标签显示的是不同的字体。 我之前在没有安装Office(因此没有安装Calibri)的计算机上测试时看到过这个问题,但现在我在任何地方都能看到它,即使在已经安装了Calibri的计算机上(我在设计器中看到带有Calibri的标签;然后在调试模式下运行时,我看到另一种字体)。

标签以前能够正确显示,我今天才发现了这个问题(但可能已经被忽略了几天,我不确定,但肯定不久)。

昨天有一些Windows更新,其中一些是针对Office的更新,但我不确定是否相关。 底线是我有Calibri,设计器中显示Calibri,但在运行时显示其他字体。 而且当我使用SemiBold样式时,好像也有同样的问题。

下面是结果的图片,左边是运行时,右边是VS设计器:

左侧为运行时,右侧为设计器

当我尝试使用Calibri bold时,这个问题甚至更加明显了;这次运行时在右侧,设计器视图在左侧:

左侧为设计器,右侧为运行时


1
你不应该在标题中放置标签。 - Daniel A. White
1
看起来字体没问题,只是渲染质量变了。 - Daniel A. White
抱歉关于标签的问题,我之前看到过,以为那是正确的方式,我在这里发帖还是新手。 按钮是基于免费PSD自定义制作的,但文本是独立的标签。 至于它是否使用了不同的字体或渲染方式,我没有眼力来判断,但设计师已经将其设置为正常(非粗体),因此运行时的字体会很奇怪,因为它与Calibri中没有比Normal更细的样式。 - Mickael V.
@Rotem:是的,在Visual Studio中……但在应用程序(左侧)中却没有。 - leppie
@leppie 两者都有。注意两侧的红/蓝抗锯齿。第二张图片中右边是应用程序,左边是设计师。 - Rotem
显示剩余12条评论
1个回答

7
无论何时在Visual Studio中创建新的Windows Forms应用程序,模板都包括以下行。
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(/*new instance of your form*/);

这一行特别会影响您的应用程序中文本的呈现方式。

Application.SetCompatibleTextRenderingDefault(false);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接