前面來自:http://www.cnblogs.com/xuxiaona/archive/2013/03/28/2987193.html
使用WPF創建一個窗體(Window)時,如果設置了固定的高度(Height)和寬度(Width),一旦用戶的電腦分辨率過低,就會使得窗體及其中的內容無法完整地顯示出來。要解決這個這個問題,有以下幾個方法可供參考: 1、無論將窗體做成全屏的(WindowState="Maximized"),還是設置了固定的窗體大小,都可以利用DockPanel控件來進行布局。DockPanel控件有一個特殊的屬性:LastChildFill="True",可以使該控件中的最后一個元素自動填充滿剩下的位置。 如,某頁面,最上方是一個下拉框,最下方是一個按鈕,中間是一個列表。可以按如下寫法進行布局: <DockPanel LastChildFill="True"> <ComboBox Height = "20" DockPanel.Dock="Top"/> <Button Height = "20" DockPanel.Dock="Bottom"/> <ListView DockPanel.Dock="Top">......</ListView> </DockPanel> 這樣即使列表控件ListView看上去是放在DockPanel的最后的位置,但其實是填充在了下拉框ComboBox和按鈕Button之間的位置。由於下拉框和按鈕都指定了具體的高度,因此該頁面中間的大片空白就被ListView全部填滿,不需要為ListView指定一個具體的高度或寬度。 無論分辨率如何變化,只要窗體是能夠完整顯示出來的,窗體中的元素都能夠正常顯示。 2、如果窗體不是全屏的,設置了具體的高度或寬度,在有些分辨率下連窗體都無法顯示完全,那么上述方法也無法解決問題。只能使用ViewBox控件,該控件可拉伸和縮放單個子元素以填滿可用空間。 一個 Viewbox 只能具有一個Child,需要將ViewBox作為窗體中的最外層元素,將所有控件都包括在其中,如: <Window> <View> <DockPanel> ...... </DockPanel> </View> <Window> 再將所有控件放到DockPanel中進行布局。經過ViewBox處理過的窗體,在分辨率不足以顯示原定大小的情況下,會根據分辨率將窗體、窗體中的所有控件,包括字體大小,都按比例自動進行縮放。