在我的申請,我得到的屏幕分辨率與此代碼:航空是否操縱DPI和屏幕尺寸?爲什麼?
SystemInformation.PrimaryMonitorSize
我也得到了DPI與此代碼:
using (Graphics g = Graphics.FromHdc(NativeMethods.GetDC(IntPtr.Zero)))
{
dpiX = g.DpiX;
dpiY = g.DpiY;
}
這在大多數情況下的罰款。但是,當代碼在開啓Aero的Vista計算機上運行時,並且用戶已將顯示器設置爲使用高DPI時,奇怪的結果會回來。
比方說用戶已經將設備設定爲以1024 x 768運行,並具有DPI在144,上面的代碼將返回的683×512的分辨率和96
一個DPI然而,如果航空被關閉,結果回來,因爲我期望他們。 Aero正在做什麼,如何才能獲得真正的解決方案和DPI?
+1這是完全正確的。微軟放棄了試圖懇求開發人員使其應用程序在96dpi以外的dpi設置下正常工作。如果用戶選擇高分辨率,大多數應用程序不會被破壞,開發人員現在已經表明它們支持高dpi。用戶仍然可以禁用每個程序的縮放比例(右鍵單擊,兼容性選項卡) – 2009-12-04 16:38:34