我一直使用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());
通过 (右键单击桌面) 个性化 > 桌面
选项调整了显示大小为150% (因为屏幕有60英寸,您离屏幕比较远)。
如何检测这个设置,以便可以调整上述的返回值?
注意:我已经发现了一个右键可执行文件的解决方法,可以调整兼容性以禁用DPI虚拟化,但我仍然需要一个编程解决方案,以便我不必让用户自己进行调整。请参见 - http://msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx#dpi_virtualization