gpt4 book ai didi

.net - Windows 窗体应用程序的默认字体

转载 作者:行者123 更新时间:2023-12-03 07:43:15 25 4
gpt4 key购买 nike

每次我在应用程序中创建新表单时,它都会默认使用“Microsoft Sans Serif,8.25pt”字体。我不会更改它,因为我知道在这种情况下,我的表单应该选择系统的默认字体。但是,当我运行应用程序时,使用的字体仍然不是 Segoe UI(我的 Windows Vista 操作系统中的默认系统字体)。

为什么会发生这种情况?如何确保我的应用程序看起来像普通的 Windows 应用程序?

最佳答案

接受的答案并没有真正回答问题;它只是解释了为什么会发生这种行为。

其他一些答案提出了可靠的解决方法,但我发现最好的解决方案实际上是创建一个基本表单,应用程序中的所有表单都继承自该基本表单,并将该基本表单的 Font 属性设置为 SystemFonts.MessageBoxFont在构造函数中。这不仅可以确保您的应用程序在运行时根据用户环境选择正确的字体(避免 Hans Passant 带来的潜在问题 — 没有 Office 2007 的 XP 在没有 Segoe UI 的情况下将诉诸 Microsoft Sans Serif ),同时还为您提供对当前 Windows 字体的设计时支持。在设计时使用正确的字体可以解决 Josuegomes 指出的问题,因为在窗体上创建的任何容器控件都将采用窗体在设计时使用的字体。

除了上述优点之外,这还使您不必记住修改您创建的每个表单的构造函数,并确保应用程序中所有表单的一致性,并为您提供放置其他常用功能的位置。我以几种不同的方式使用它,例如 p/invoking 等来修复 WinForms 实现中的错误。

此方法剩下的唯一问题是,如果您想为特定控件设置字体样式,例如粗体。执行此操作的最佳位置仍然是在该表单的构造函数中,从表单的字体作为基础开始并从中修改样式:

myControl.Font = New Font(Me.Font, FontStyle.Bold)

关于.net - Windows 窗体应用程序的默认字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/297701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com