我已经有Screen.PrimaryScreen.Bounds.Size
一段时间了,但是在我连接到大屏幕电视的 Windows7 计算机上,它给了我不正确的值。
我在其他地方读过尝试SystemInformation.PrimaryMonitorSize
,但给出了相同的值。
当我右键单击桌面以获取屏幕分辨率时,它显示1920x1080
. 以上两个都是给我的1280x720
。
我也尝试过 WPF 版本:
var w = System.Windows.SystemParameters.PrimaryScreenWidth;
var h = System.Windows.SystemParameters.PrimaryScreenHeight;
MessageBox.Show(new Size((int)w, (int)h).ToString());
显示尺寸已通过(右键单击桌面)Personalize > Desktop
选项更改为 150%(因为屏幕为 60 英寸并且您坐得有点远)。
如何检测到这一点,以便可以调整从上面返回的值?
注意:我已经发现如何通过右键单击可执行文件来解决此问题并调整兼容性以禁用 DPI 虚拟化,但我仍然需要一个编程解决方案,因此我不必让用户自己调整:参见 - http: //msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx#dpi_virtualization