我们可以获得屏幕的分辨率和内容Screen
班级。所以,我们应该使用Screen.WorkingArea.Width
and Screen.WorkingArea.Height
,如果我们想在屏幕中央放置一些东西。
但是,在 Windows 8.1(不确定其他操作系统)中,如果屏幕上的项目看起来太小,则可以缩放它们。您可以通过调用桌面上的上下文菜单,选择“屏幕分辨率”,然后选择“放大或缩小文本和其他项目”来检查它。
问题是,它似乎确实提高了屏幕分辨率!所以,Screen.WorkingArea.Width
and Screen.WorkingArea.Height
会给你缩放值和点Screen.WorkingArea.Width/2
Screen.WorkingArea.Height/2
将不再位于实际屏幕的中心(对于 200% 缩放,该点将位于屏幕的右下角)。这可能会搞乱 UI 项目的很多位置。
那么,是否有可能获得缩放值呢?我找不到任何包含此信息的类。
大多数检索 DPI 的方法都依赖于现有控件,这有时可能不方便。但 DPI 始终可以从注册表中检索。在 C# 中:
using Microsoft.Win32;
//...
var currentDPI = (int)Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "LogPixels", 96);
规模将是
var scale = 96/(float)currentDPI;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)