You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

发布后Windows Form尺寸不符,高DPI自动缩放失效问题咨询

解决DevExpress WinForms应用高DPI缩放异常问题

1. 配置应用的DPI感知

  • 修改应用清单文件(app.manifest),在<application>节点内添加以下配置,启用每显示器V2高DPI感知:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
    <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
  </windowsSettings>
</application>
  • 或通过Visual Studio项目属性快速配置:右键项目→属性→应用→DPI感知,选择每显示器高DPI感知。

2. 启用DevExpress高DPI支持

在Program.cs的Main方法最开头添加初始化代码,强制DevExpress控件适配高DPI:

using DevExpress.XtraEditors;

static void Main()
{
    // 启用DevExpress高DPI支持
    WindowsFormsSettings.EnableHighDpiSupport = true;
    WindowsFormsSettings.ScaleMode = ScaleMode.PerMonitorV2;
    WindowsFormsSettings.DpiScaleFactorChanged += (s, e) => { Application.Restart(); };

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
}

3. 调整窗体和控件的缩放属性

  • 所有窗体的AutoScaleMode属性设置为Dpi:在设计器中选中窗体,属性面板找到AutoScaleMode,选择Dpi(而非Font或None)。
  • 图标资源优化:优先使用DevExpress内置的SVG矢量图标,避免固定像素位图;若使用位图,需在ImageCollection中勾选EnableImageDpiScale启用DPI缩放。

4. 设计器与发布验证

  • 启用Visual Studio高DPI设计器支持:工具→选项→Windows Forms设计器→高DPI支持,勾选启用高DPI设计器,确保设计预览与实际运行效果一致。
  • 发布前在不同缩放比例的设备上测试,或通过Windows显示设置调整缩放比例后重启应用,验证控件尺寸、图标显示是否正常。

内容的提问来源于stack exchange,提问作者Oğuzhan Eker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:04:59