我有一个托管在 WindowsFormsHost 内的 Winforms 属性网格。 一切都工作得很好,直到您更改 Windows 中的 DPI 设置, 或者使用具有非常高 DPI 的显示器。
当你这样做时,属性名称开始重叠,看起来像 它会安排 UI,然后重新调整字体大小以适应高 DPI。 很奇怪。 它看起来像这样:
(注意值标签如何不像名称标签那样“放大”?) 我已经尝试了所有我能想到的与 DPI 相关的内容。 在 PropertyGrid 上设置 AutoScaleMode, 从主机中删除属性映射, 设置 UseCompatibleTextRendering 等...
我一直在浏览 .NET 源代码,但似乎没有办法 为名称和值设置不同的字体。
我尝试在空的 WPF 应用程序中重现此问题,但未能成功。 有人有主意吗?我已用尽所有资源和 Google 技能,但仍无济于事。
谢谢
西蒙
编辑:如果相关,我将“控制面板”->“显示”下的“更改所有项目的大小”设置为“大 - 150%”。使用 Windows 8,但在其他平台上也遇到过此问题。
最佳答案
事实证明,导致 DPI 问题的原因是一个实例 System.Windows.Forms.WebBrowser,从我们的用户控件之一中注释掉/删除该控件,瞧,一切都很好。
这回答了我的问题,我的问题已解决。虽然我还是很好奇想知道 为什么会发生这种情况。 (别问我花了多少个小时才找到这个)
我可能会补充一点,虽然这确实被证明是我的问题的根源, 我无法在较小的应用程序中重现它。
关于wpf - Winforms属性网格高dpi ui重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968114/