2

我在 WindowsFormsHost 中托管了一个 Winforms 属性网格。在您更改 Windows 中的 DPI 设置或使用具有非常高 DPI 的显示器之前,一切都运行良好。

当您这样做时,属性名称开始重叠,似乎它排列 UI,然后重新调整字体大小以适应高 DPI。很奇怪。这是它的样子:

在此处输入图像描述

(请注意价值标签不像名称标签那样“炸毁”?)我已经尝试了所有我能想到的与 DPI 相关的东西。在 PropertyGrid 上设置 AutoScaleMode、从主机中删除属性映射、设置 UseCompatibleTextRendering 等...

我一直在浏览 .NET 源代码,似乎没有办法为名称和值设置不同的字体。

我试图在一个空的 WPF 应用程序中重现这一点,但一直无法这样做。有人有想法么?我用尽了所有资源和 Google 技能,但无济于事。

谢谢

西蒙

编辑:如果它是相关的,我将控制面板下的“更改所有项目的大小” - >显示设置为“大 - 150%”。使用 Windows 8,但在其他平台上也看到了该问题。

4

2 回答 2

2

结果是导致 DPI 问题的东西是 System.Windows.Forms.WebBrowser 的实例化,从我们的一个用户控件中注释/删除该控件,瞧,一切都很好。

这回答了我的问题,我的问题解决了。尽管我仍然很想知道 为什么会发生这种情况。(不要问我在找到这个之前我花了多少个小时抓住稻草)

我可能会补充一点,虽然这已被证明是我的问题的根源,但我无法在较小的应用程序中重现它。

于 2013-08-01T11:55:09.140 回答
2

我遇到了完全相同的问题 - 对我来说最好的方法是关闭应用程序中的 DPI 感知。做到这一点的最好方法就是使用 AssemblyInfo

[assembly: DisableDpiAwareness]
于 2015-12-13T10:11:36.273 回答