处理自动缩放的正确方法

Jon*_*art 11 c# .net-4.0 winforms

我正在与WinForms应用程序上的另一个开发人员合作,我们在与自动缩放相关的外观方面遇到了很大问题.

我的系统(索尼VAIO)在此菜单上默认为125%:

显示缩放

据我所知,125%将DPI设置为120,默认字体大小(菜单等)设置为11pt.在另一个开发人员的系统上,他的默认值为100%,即96 dpi和9pt字体.我不确定,但我认为只有DPI才是让我们感到悲痛的原因.

问题表现在文本大小错误,要么掩盖其他控件,要么过于分散(取决于最后谁在设计师中打开).据我所知,所有ContainerControls都设置为AutoScaleMode.Inherit,顶级表单是AutoScaleMode.Dpi.这是大多数人使用的吗?

Ale*_*icu 5

我的一个应用程序遇到了同样的问题。答案是将其移至 WPF。当我仍然使用 WinForms 时,我带来的解决方案是拥有 2 个可执行文件。一个在 96DPI 下开发,另一个在 120DPI 下开发。这是双重努力,但我尝试过任何布局配置都没有成功。如果我的控件在 96DPI 上看起来不错,那么当切换到 120DPI 时,它们就在窗口的应用程序之外。反之亦然。

WPF 是解决这个烦人问题的唯一方法。