gpt4 book ai didi

c# - 我可以提高 Windows 窗体的分辨率/DPI 吗? (一些扩大控制的方法?)

转载 作者:行者123 更新时间:2023-11-30 17:48:39 27 4
gpt4 key购买 nike

我正在用 C# 开发一个 Windows 窗体应用程序,供办公室使用。到目前为止,通过锚定和自动调整大小,控件可以在默认窗体大小、最大化等情况下很好地自行布局。

表格在 session 室的大投影屏幕上看起来不太好。文字太小,不易阅读。

我们在我们的机器上运行 Windows 7,因此作为一项实验,我将显示渲染从 100% 提高到 150%。这使得控件上的文本变得模糊,所以我做了一些研究,然后将其添加到我的 Main() 方法中。

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware;

效果非常好 - 应用程序按比例放大,控件大且可读,一切都继续良好布局。唯一的问题是更改显示渲染会强制您注销,这很不方便,而且实际上我们的用户永远不会这样做。计算机可能会保持在 100%。

我可以在应用程序中执行此操作吗?我见过很多关于将应用强制降低到 96 DPI 的问题,但是是否可以将其强制提高到 120 或 144 DPI?

或者也许有不同的更好的方法来实现相同的目标?如果可能的话,我想避免使用大字体构建单独的“演示模式”界面。

最佳答案

由于要在 Windows 窗体中正确使用 DPI,我们最终选择了一条更简单的途径:更改窗体的字体。

如果所有控件都设置为按字体自动缩放(这是它们的默认设置),您可以在每个表单的基础上覆盖系统字体。

this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

有些控件不会从表单的字体中提取出来,必须单独设置,例如菜单条。

menuStrip1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

我们将表单的字体大小更改为 14,将菜单的字体大小更改为 15 以提高可读性,并将它们更改回原始值以返回标准模式。

请注意,正如一些控件默认会忽略表单字体一样,如果您手动配置它们的字体(例如将文本设置为粗体或斜体等),许多(如果不是全部)控件可以并且将会忽略它。每个实例都需要单独处理。

关于c# - 我可以提高 Windows 窗体的分辨率/DPI 吗? (一些扩大控制的方法?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635113/

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