Csharp/C#教程:我可以告诉Visual Studio不要更改项目的DPI吗?分享


我可以告诉Visual Studio不要更改项目的DPI吗?

我有一个从.NET 1.1转换为3.5的项目正在2008年开发。

如果我在Windows 7上打开项目,它会将所有内容的大小转换为120dpi大小。 如果我然后用96 dpi打开它,它会改回来。 有没有办法让我开发,所以它看起来都很好,如果在具有不同DPI的系统上打开,Visual Studio 不会更改大小?

这个问题可能更好地表达/重复: 视觉工作室设计师dpi设置

或者在这里: Visual Studio和DPI问题

要清楚我正在尝试做的是防止控件在被具有不同DPI设置的多个开发人员使用时在设计器中resize。 在我注意到这个问题的所有情况下,我一直在使用.NET 1或.NET 2项目升级到最初使用Visual Studio 2008,现在是Visual Studio 2010。

更新 (如果有人想与@Ben争夺奖励积分):我有一个正确resize的表单,但窗口的大小会以编程方式更改。 由于设计人员不知道尺寸,因此如果使用不同DPI的开发人员触摸表单,则窗口会不正确地resize。 有没有办法解决这个问题,而不是回到不在运行时缩放UI?

例如:我声明的窗口有两种尺寸,如果开发人员在设计时使用120 dpi,它可以正常工作:

private static Size smallSize = new Size(960, 500); private static Size largeSize = new Size(960, 615); 

如果有人在96dpi的设计师中编辑表单,我只是想绕过我需要做的事情,不要有一个可怕的设计回归。

AutoScaleMode = AutoScaleMode.None;

另请参见: ContainerControl.AutoScaleMode属性

由于我最近遇到了同样的问题,我想分享我的解决方法。

第一: KEEP AutoScaleMode = Font ! 这将在运行时很好地使您的应用程序具有DPI感知能力。 (甚至很酷的每个Monitor DPI Aware)。

但是,Visual Studio中的WinForms Designer实际上是根据系统的DPI评估字体大小,因此只要它认为有必要就重新调整。 这是问题的核心。 触发此评估是因为字体通常以“点”指定其大小(以提供独立于DPI的用户体验)。

我的解决方法是在设计时更改此设置:

我在我的博客上写了关于我的解决方法的详细信息: http : //www.sgrottel.de/? p = 1581&lang = en

上述就是C#学习教程:我可以告诉Visual Studio不要更改项目的DPI吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1010258.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐