[英]Disabling windows 10 scaling for specific application
我在某些应用程序(主要是仪表板)上遇到问题,某些用户使用Windows显示比例缩放来增大其图标,但这在我的软件中造成了巨大的问题。 我正在寻找一种方法来完全禁用我的应用程序的缩放比例,而将应用程序缩放到显示分辨率的像素。
我发现了这个线程,但是它已经有8年的历史了,当时Windows 10还不存在,另一个用户给出了答案,但是它也不起作用。
一个简单的行为示例通常发生在仪表板上,因为在此类屏幕上有很多控件和小部件,它们对于诸如机器人机械控制器之类的事情至关重要。
一个示例仪表板窗口的最小尺寸为1900 x 980
(可以在两个方向上缩小4-5像素,但我们四舍五入以获得四舍五入的位置XY值)。 该分辨率仅为1920 x 1080
。 它不能更小,但是如果您拥有更大的屏幕(例如4K
并且您只能在树状视图中获得更多日期,在3d Engine渲染器中更好地显示等,则可以使其更大。
因此,某些用户的笔记本电脑屏幕较小,例如15英寸,最大分辨率为1920 x 1080
分辨率,但他们使用150%的缩放比例,因此我的屏幕最小尺寸在屏幕上变为2850 x 1470
,这使应用程序比屏幕更大,并向外移动屏幕。
再举一个例子,如果我使用的Windows Surface Pro的分辨率为2736 x 1824
,比1920 x 1080
大约大80%,则该窗口的确确实会占据屏幕上原始的1900 x 980
像素,这使得它看起来很小。全屏显示后,您会在所有控件中看到更多信息。 但是,如果您将缩放比例更改为150%,那么屏幕现在将再次在屏幕上拍摄2850 x 1470
像素,该像素完全适合高度,但宽度却短了100像素,而100像素足以使屏幕的右侧部分松动我的屏幕,您将看不到屏幕的最左侧或最右侧。
我尝试了3种自动缩放模式:DPI,字体和无,它根本不起作用。 无论如何,它仍然可以拉伸屏幕。 更改表单的字体也无济于事,我设法使它一次可以直接在表单中用于少数标签,但是组框内的任何内容都无法更改,或者与其余的相比,其大小增加了两倍。
重要事项:
4.5
和4.6
但是如果我需要特定功能,则在4.7
编译它们没有问题。 1920 x 1080
的限制,这大约是我们客户的90% 那么,如今有什么可以解决或解决此问题的方法?
您是否尝试使您的Process DPI意识?
您可以通过pinvoke做到这一点:
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
并打电话
SetProcessDPIAware();
在您的Main或创建清单并添加
<dpiAware>true</dpiAware>
有一个教程在这里 。 取消选中它,DPIAware应该阻止窗口自行扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.