2015-05-11 47 views
0

在我的應用程序中,我需要知道所有顯示器組合空間的大小,以調整窗口的大小,如果它變大。我應該如何使用VirtualScreenLeft和VirtualScreenTop

我發現VirtualScreenWidthVirtualScreenHeightSystem.Windows.SystemParameters這似乎是我所需要的。但我也想知道什麼是VirtualScreenLeftVirtualScreenTop以及我應該如何考慮?在哪些情況下,這些值被設置爲不是0?

+0

是這個wpf?或者是其他東西? –

+0

我認爲如果您的主顯示器位於右側,並且該顯示器的左側或右側顯示器位於主顯示器上方,則這些值可能爲負值。我相信主顯示器的左上角始終是0,0,其他所有參數都是從那裏引用的。可能想檢查一下,但我相信是這樣。 –

+0

@RonBeyer你錯了: _虛擬屏幕是所有顯示器的邊界矩形[MSDN](https://msdn.microsoft.com/en-us/library/system.windows.systemparameters.virtualscreenleft%28v=vs .110%29.aspx) – Simon

回答

1

虛擬屏幕是包含系統所有監視器的邊界框。在主監視器的左上角0,0處引用邊界框(主監視器在系統屬性中定義)。

這意味着邊界框可以具有負數作爲左/頂值。例如,假設你有兩臺1920x1080的顯示器。主顯示器設置爲右邊的一個(但頂部爲水平),邊界框將爲-1920,0,3840,1080(x,y,w,h)。

如果將左側顯示器向上移動500個像素,則邊界框變爲-1920,-500,3840,1580。需要注意的是,邊界框的某些區域對於用戶來說是不可見的,所以如果您設計的屏幕佔用的面積與兩個顯示器所佔的面積相同,請注意它們可能沒有設置爲矩形。他們也可能不是兩個相同的決議。