2016-11-16 413 views
0

我試圖讓每個屏幕分辨率(例如:1920x1080)和縮放係數(例如:125%或120 dpi),而無需將應用程序從屏幕移動到屏幕。 (Windows 10,主屏幕是1920x1080變焦125%,次屏幕(右側)是1920x1080變焦100%) 。獲取每個屏幕分辨率和縮放係數

System.Windows.Forms.Screen給出了相應的結果: - 1920×1080的第一個屏幕分辨率(OK) - 2400x1350分辨率的第二屏幕(也不行,應該是1920×1080)

http://www.wpftutorial.net/ScreenResolutions.html

隨着PInvoke的,shcore.dll的結果相同的GetDpiForMonitor()給出了相應的結果: - 120 1屏幕(OK) - 120第2屏幕(也不行,應該是96)

你有一個你的想法我怎麼能做到這一點,並得到正確的結果?

回答

0

我找到了一個解決方案:在註冊表中,分辨率是正確的。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\*\CONTROL\VIDEO\*\* 

在那裏,你可以用Attach.ToDesktop = 1 找到你的當前屏幕然後,您可以使用DefaultSettings.XResolutionDefaultSettings.YResolutionAttach.RelativeXAttach.RelativeY發現屏幕分辨率和positionning。

要查找的變焦倍率,或者使用GetDpiForMonitor()如果從註冊表中的分辨率是一樣的,從System.Windows.Forms.Screen分辨率或從兩者獲得的比例和96

乘以