如何檢索我的C#Winform應用程序運行的屏幕分辨率?如何從C#winform應用程序檢索屏幕分辨率?
回答
您是否需要標準應用程序所使用的區域,即排除Windows任務欄和停靠窗口?如果是這樣,請使用Screen.WorkingArea property。否則,請使用Screen.Bounds。
如果有多個顯示器,則需要從形式抓取屏幕,即
Form myForm;
Screen myScreen = Screen.FromControl(myForm);
Rectangle area = myScreen.WorkingArea;
如果你想知道哪個是主顯示屏幕,使用Screen.Primary屬性。此外,您可以從Screen.AllScreens屬性中獲取屏幕列表。
使用Screen類,並詢問Bounds屬性。 Screen類有一個靜態屬性Primary Screen,另一個靜態屬性返回a list of all the screens attached to the system。
+1鏈接到Screen.AllScreens。對於Screen.WorkingArea,爲 – ToolmakerSteve 2013-10-10 17:51:25
Screen.PrimaryScreen.WorkingArea.Size()
給出的答案是正確的,就它而言。但是,如果將文本大小設置爲超過125%,Windows(和.NET)會開始掃描屏幕大小以便自動縮放。
大多數情況下,這不是問題 - 您通常希望Windows和.NET來執行此操作。但是,如果真的需要知道屏幕上像素的實際數量(例如,要直接繪製到桌面DC),則可以執行以下操作。我只在Win10上試過這個。 YMMV在其他Windows版本上。
到目前爲止,如果您不想全局關閉應用程序中的DPI感知功能,那麼這是獲得真正屏幕像素數的唯一方法。請注意,此示例獲取主顯示屏大小 - 您需要修改此屏幕以獲取其他屏幕。
[DllImport("User32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
static extern int ReleaseDC(IntPtr hwnd, IntPtr dc);
[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
IntPtr primary = GetDC(IntPtr.Zero);
int DESKTOPVERTRES = 117;
int DESKTOPHORZRES = 118;
int actualPixelsX = GetDeviceCaps(primary, DESKTOPHORZRES);
int actualPixelsY = GetDeviceCaps(primary, DESKTOPVERTRES);
ReleaseDC(IntPtr.Zero, primary);
- 1. c#winform屏幕分辨率
- 2. 屏幕分辨率檢測
- 3. 檢測屏幕分辨率
- 4. Windows 8應用程序中的屏幕分辨率檢測
- 5. C++的屏幕分辨率
- 6. 適應屏幕分辨率
- 7. 屏幕分辨率(C#Win 8.1應用程序)
- 8. 如何遷移iPhone 5屏幕分辨率的應用程序?
- 9. Winform顯示屏分辨率
- 10. 屏幕分辨率
- 11. 屏幕分辨率
- 12. 屏幕分辨率
- 13. 屏幕分辨率
- 14. 屏幕分辨率
- 15. 屏幕分辨率
- 16. 如何使用c#windows應用程序設置windows屏幕分辨率
- 17. 在iPhone應用程序中如何檢測設備的屏幕分辨率
- 18. iPhone模擬器屏幕分辨率vs iPhone屏幕分辨率
- 19. Android應用屏幕分辨率問題
- 20. 如何使.net winform應用程序分辨率友好
- 21. WinForm分辨率
- 22. 如何閱讀屏幕分辨率 - 並更改此分辨率?
- 23. 檢測客戶端屏幕分辨率
- 24. 檢查多個屏幕分辨率
- 25. 應用程序洞察 - 無屏幕分辨率信息
- 26. 問題根據屏幕分辨率過濾android應用程序
- 27. WPF作物應用程序窗口到屏幕分辨率
- 28. Silverlight應用程序屏幕分辨率問題
- 29. 應用程序支持所有的i-Phone屏幕分辨率?
- 30. Google Cast Receiver應用程序屏幕分辨率
+1。我錯誤地使用了Screen.Bounds。如果可以的話,我會給你+2,提及Screen.FromControl而不是Screen.PrimaryScreen! – ToolmakerSteve 2013-10-10 17:44:51