2010-04-24 91 views
14

我試圖創建一個WPF窗口,它將包含整個桌面工作區域。在WinForms中,我會通過獲得System.Windows.Forms.Screen.AllScreens中的所有邊界的聯合來完成此操作。有沒有一個WPF等價於System.Windows.Forms.Screen?

是否有一個等效的類型或其他機制來獲取WPF中整個桌面的邊界,還是我需要使用WinForms類型?

回答

9

嘗試SystemParameters.VirtualScreen *(頂部,左側,高度和寬度)屬性。 http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.virtualscreenheight(v=VS.100).aspx

請勿使用winforms API,因爲它沒有考慮到WPF的測量單位不是像素的事實。最近我遇到了這個問題,因爲我失去了我的視野,並將我的顯示器設置爲更高的dpi。我正在使用的代碼庫使用Winforms設置,UI比我的屏幕大。

如果你打算使用winforms api。看看calculating the DPI factor這篇博文。

4

只需使用WinForms。我不認爲有直接的WPF等價物。

+1

錯誤有WPF等價物。看到我的迴應。 – 2010-04-25 04:49:23

+9

哦? WPF能告訴我們每個顯示器的個別情況嗎? WPF可以告訴你一個窗口在哪個屏幕上(比如Screen.FromControl()?) – Qwertie 2011-07-29 21:24:07

+3

如果你有多個不相同大小的顯示器怎麼辦?有沒有相當於處理這個?正如Qwertie提到哪個屏幕是? – Marek 2012-08-30 08:41:49

1

您可以嘗試SystemParameters.VirtualScreenWidth和相關參數。這可能無法提供像WinForms API一樣的結果。

我可以看到WinForms類型唯一的缺點是額外的依賴性和更大的工作集相關的。

相關問題