Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio visual studio designer dpi设置_Visual Studio_Forms_Resize_Dpi - Fatal编程技术网

Visual studio visual studio designer dpi设置

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!:-((( 所以我尽量避免重新打开表单,但这不是一个好的解决方案,不是吗 是否有设计时设置来防止窗体调整大小?这不是一个解决方案,但可能是一个解决方案:不要在您的计算机上测

我已经学习了如何通过艰苦的方式管理不同的DPI设置,以便在运行时正确显示我的应用程序

但是设计时VisualStudio仍然存在一个大问题。 假设我以96 dpi的速度构建一个应用程序,并将显示器切换到120 dpi以进行测试

现在,如果我以120 dpi的速度打开表单设计器,表单的大小将根据125%调整,控件将移动到aso!:-(((

所以我尽量避免重新打开表单,但这不是一个好的解决方案,不是吗


是否有设计时设置来防止窗体调整大小?

这不是一个解决方案,但可能是一个解决方案:不要在您的计算机上测试,而是在VM或其他计算机上测试,也不要在大字体的计算机上打开解决方案


我们发现我们不能使用AutoScaleMode=Dpi.Font设置。当我们在设计器中打开表单时,它会随机调整表单大小。Dpi或None似乎都能正常工作。

虽然这个问题已经很老了,但我想分享一下我的解决方法

  • 保持窗体的
    AutoScaleMode=Font
    。如果您正确控制其余部分,则可以正常工作
  • 在窗体设计器中设置:
    Font=MS Sans;11px
    。基本上,以像素而不是点指定字体。因此,如果系统的DPI发生更改,Visual Studio将不会重新缩放任何内容
  • 在Forms Ctor中,在初始化组件后,重新设置:
    Font=SystemFonts.DefaultFont
    。现在,在运行时,字体将再次使用基于点的大小,并且您将获得良好的高DPI GUI
  • 通过清单或API函数SetProcessDPIaware启用DPI感知

你可以在我的博客上找到我(艰苦的)学习经历的细节:

这是我问题的重复,也很遗憾没有得到回答。