Visual studio visual studio designer dpi设置
我已经学习了如何通过艰苦的方式管理不同的DPI设置,以便在运行时正确显示我的应用程序 但是设计时VisualStudio仍然存在一个大问题。 假设我以96 dpi的速度构建一个应用程序,并将显示器切换到120 dpi以进行测试 现在,如果我以120 dpi的速度打开表单设计器,表单的大小将根据125%调整,控件将移动到aso!:-((( 所以我尽量避免重新打开表单,但这不是一个好的解决方案,不是吗Visual studio visual studio designer dpi设置,visual-studio,forms,resize,dpi,Visual Studio,Forms,Resize,Dpi,我已经学习了如何通过艰苦的方式管理不同的DPI设置,以便在运行时正确显示我的应用程序 但是设计时VisualStudio仍然存在一个大问题。 假设我以96 dpi的速度构建一个应用程序,并将显示器切换到120 dpi以进行测试 现在,如果我以120 dpi的速度打开表单设计器,表单的大小将根据125%调整,控件将移动到aso!:-((( 所以我尽量避免重新打开表单,但这不是一个好的解决方案,不是吗 是否有设计时设置来防止窗体调整大小?这不是一个解决方案,但可能是一个解决方案:不要在您的计算机上测
是否有设计时设置来防止窗体调整大小?这不是一个解决方案,但可能是一个解决方案:不要在您的计算机上测试,而是在VM或其他计算机上测试,也不要在大字体的计算机上打开解决方案
我们发现我们不能使用AutoScaleMode=Dpi.Font设置。当我们在设计器中打开表单时,它会随机调整表单大小。Dpi或None似乎都能正常工作。虽然这个问题已经很老了,但我想分享一下我的解决方法
- 保持窗体的
。如果您正确控制其余部分,则可以正常工作AutoScaleMode=Font
- 在窗体设计器中设置:
。基本上,以像素而不是点指定字体。因此,如果系统的DPI发生更改,Visual Studio将不会重新缩放任何内容Font=MS Sans;11px
- 在Forms Ctor中,在初始化组件后,重新设置:
。现在,在运行时,字体将再次使用基于点的大小,并且您将获得良好的高DPI GUIFont=SystemFonts.DefaultFont
- 通过清单或API函数SetProcessDPIaware启用DPI感知
你可以在我的博客上找到我(艰苦的)学习经历的细节:这是我问题的重复,也很遗憾没有得到回答。