.NET 如何更改 windows 默认字体?

Posted

技术标签:

【中文标题】.NET 如何更改 windows 默认字体?【英文标题】:.NET how to change windows default font? 【发布时间】:2011-11-05 06:48:01 【问题描述】:

我想在我的 .NET CF 应用程序中更改 MessageBox 字体,但发现这并不容易(甚至不可能)。 一些建议更改 windows 的默认字体,因为 MessageBox 使用它。 方便的方法是:桌面属性/外观/高级... 但是我如何通过使用 .NET 类库的代码来做到这一点? 有一个属性可以获取消息框的系统默认字体:

SystemFonts.MessageBoxFont

但是如何设置呢? 我尝试在 Windows XP 中调用 SystemParametersInfo() win32 本机函数,它使用 SPI 值 SPI_SETNONCLIENTMETRICS。

但在 Win CE 5.0 中,它返回错误代码 1439 / ERROR_INVALID_SPI_VALUE,这意味着不支持设置像字体这样的一些值。 我用谷歌搜索了一下,发现THIS 页面列出了适用于 Windows CE 3.0 的 SPI,而我的设置当前默认消息框的 SPI 不存在。 那么如何更改消息框的 Windows 默认字体?

【问题讨论】:

【参考方案1】:

我怀疑是否有一种受支持的方法可以从代码中更改它。这是用户可以控制的系统范围的选项。 MS 喜欢避免诱使开发人员更改此类设置。

即使有办法从代码中更改系统范围的设置,我也敦促您不要这样做。而是编写您自己的消息框对话框,并随意使用您喜欢的任何字体。

【讨论】:

但是如果我在我自己的自定义 MessageBox 类中显示一个 Form 对象作为对话框,关于我正在使用 Windows CE 5.0 和 .NET CF 3.5,它会很重并且是不快! 速度在这里不是问题。对话框等待用户输入!!显示自定义表单完全没有问题。 也许你是对的,但是当我尝试显示/隐藏表单时,它的动作太慢了。但是谢谢。 如果显示带有标签和几个按钮的表单很慢,则会出现其他问题 并没有你想象的那么慢,但它不如 MessageBox 内置的用户警报那么快,甚至慢得多。请测试两种类型并进行比较。

以上是关于.NET 如何更改 windows 默认字体?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Emacs 的默认字体大小和字体类型?

如何配置 Msys 的默认大小、颜色和字体?

如何更改 Bootstrap 的全局默认字体大小?

如何更改 MS Access 2016 中的默认数据表字体?

Windows 窗体应用程序的默认字体

如何更改ggplot2中的默认字体大小