c# winform 高 dpi 自适应开发步骤
1. 在不启用 dpi aware 模式下开发
2. 启动 dpi aware
3. 对有问题的控件使用 DpiHelper 对定位和大小或者图像进行转换
参见 解决 DPI 问题 - Visual Studio (Windows) | Microsoft Learn
部分官方示例:
若要从将在 Visual Studio 环境中运行的托管代码访问 DPI 帮助程序函数,请执行以下操作:
1. 使用的项目必须引用最新版本的 Shell MPF。 例如:
<Reference Include="Microsoft.VisualStudio.Shell.14.0.dll" />
2. 确保项目具有对 System.Windows.Forms、 PresentationCore 和 PresentationUI 的引用。
3. 在代码中 ,使用 Microsoft.VisualStudio.PlatformUI 命名空间并调用 DpiHelper 类的静态函数。 对于受支持的类型(点、大小、矩形等),提供了返回新缩放对象的扩展函数。 例如:
using Microsoft.VisualStudio.PlatformUI; double x = DpiHelper.LogicalToDeviceUnitsX(posX); Point ptScaled = ptOriginal.LogicalToDeviceUnits(); DpiHelper.LogicalToDeviceUnits(ref bitmap);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇
2023-10-12 Process.Start 卡死问题解决
2021-10-12 npm 相关
2016-10-12 C#子类调用基类构造备忘