【发布时间】:2016-01-20 13:01:25
【问题描述】:
我有一个同时使用 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 correctly with DPI
我按照关于这些问题的建议并尝试添加清单文件和提供的 dpi 感知代码。
我还将项目升级到 .net framework 4.6.1(从 4.0)并包含 app.config 设置:<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
这确实影响了程序的主外壳(所以不是在所有控件都被压扁的小窗口中加载,而是主程序窗口打开最大化并显示正常)但是,当我从主窗口,缩放失败。
当我输入任何 WPF 子表单或插件,或返回主屏幕时,这些都会正确呈现。只有 winforms 功能无法正确扩展。
有没有人知道如何让混合 winforms/WPF 项目在高 DPI 下正确缩放?
提前致谢
【问题讨论】:
-
如果您认为这是更好的方法,好的。我发布了一个新问题,因为我认为我有一个不同的问题,因为他们的修复对我不起作用。
标签: c# wpf winforms .net-4.6 highdpi