我有一个同时使用 winforms 和 WPF 的 C# 程序,我正在努力让它在高 DPI 环境中工作。目前,如果我从解决方案中删除所有 WPF 项目并运行它,它会很好地缩放,但是一旦我重新添加任何 wpf(功能所必需),缩放就会失败并且 UI 变得不可用。
这似乎与之前的 SO 问题完全相同:DPI Scaling in .Net 3.5 in Mixed WinForms and WPF Application和Problems getting WinForms to scale correct with DPI
我遵循了关于这些问题的建议,并尝试添加清单文件和提供的 dpi 感知代码。
我还将项目升级到 .net framework 4.6.1(从 4.0 开始)并包含 app.config 设置:<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
这确实影响了程序的主外壳(所以不是在一个所有控件都被压扁的小窗口中加载,而是主程序窗口打开最大化并显示正常)但是,当我从主窗口输入任何 winforms 子表单或插件时,缩放失败。
当我输入任何 WPF 子表单或插件,或返回主屏幕时,这些会正确呈现。只有 winforms 功能无法正确扩展。
有没有人对如何让混合的 winforms/WPF 项目在高 DPI 下正确缩放有任何想法?
提前致谢