wpf - Winforms属性网格高dpi ui重叠

标签 wpf winforms propertygrid dpi

我有一个托管在 WindowsFormsHost 内的 Winforms 属性网格。 一切都工作得很好,直到您更改 Windows 中的 DPI 设置, 或者使用具有非常高 DPI 的显示器。

当你这样做时,属性名称开始重叠,看起来像 它会安排 UI,然后重新调整字体大小以适应高 DPI。 很奇怪。 它看起来像这样:

enter image description here

(注意值标签如何不像名称标签那样“放大”?) 我已经尝试了所有我能想到的与 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/

相关文章:

c# - ViewModel 使用 MEF 实例化了两次

wpf - 从 .Net 标准项目中使用 .Net Core 库

c# - 如何将不同的查询结果绑定(bind)到组合框并将其作为选定单元格值传递

c# - 错误列表框向上滚动 - 使用 DrawItem 向下滚动

c# - 如何在 C# 中替换文件中的多个文本?

c# - 如何使用 WinForms PropertyGrid 编辑字符串列表?

c# - 来自 dll 的类型转换器

c# - 如何确定某个 Point3D 是否在相机 View 范围内?

c# - 如何根据宽度值获取字符串部分?

c# - 是否可以从 PropertyGrid 中隐藏枚举值?