0
我想有一個WPF面板有兩列,其中第二個是固定寬度,並在第一列的右側。第一列是自動調整大小的。我希望第二列始終在第一列之後,而且當窗口(或父元素)變得太窄並且只有第一列或第一列的一部分適合時,也不會迷路。WPF網格佈局以及如何處理太窄窗口
當我使用DockPanel中是這樣的:
<DockPanel DockPanel.Dock="Top">
<Label Content="I am autosize" DockPanel.Dock="Left" />
<Label Content="I come right after the first column" />
</DockPanel>
第一欄是可見的,第二個是後馬上當我開始調整窗口的大小,使其更窄,首先,第二列變裁剪,直到消失,第一個裁剪。
當我使用這個:
<DockPanel DockPanel.Dock="Top">
<Label Content="I come right after the first column" DockPanel.Dock="Right" />
<Label Content="I am autosize" />
</DockPanel>
第二欄開始進行第二裁剪,但是當窗口足夠寬,它不是後立即填充停靠第一個,它停靠在右側。第一列不是自動調整大小的。
當我嘗試使用網格時,結果基本相同。當我將列寬設置爲*,20,*時,它不起作用,*,20,Auto也不會使其行爲與我想要的完全一樣。
甚至可以使用某些面板(DockPanel,優先)和佈局屬性組合,使我的第二列始終顯示在第一個列的右側,但也會在第一個列的寬度結合起來大於父元素寬度,所以在這種情況下,第二列似乎是正確停靠的,而第一列是完全停靠的?
謝謝!
不幸的是,這並沒有完全解決我的問題。我希望我的第一個元素最初儘可能少地佔用空間,但能夠擴展。例如,像WrapPanel中的TextBox一樣,它很小,但是當你輸入它時,它會延伸。除非沒有足夠的空間,另一個控件應該緊挨着它,在這種情況下,第二個控件應該保持完全可見並且第一個控件應該部分裁剪。在你的例子中,第一個TextBlock擴展到Grid中的剩餘寬度,它不會水平保持儘可能小。另外,第二個元素應該是固定的寬度。謝謝,認爲:) – user2171565 2013-03-19 16:33:07
所以基本上你不希望網格拉伸。設置網格的水平對齊,看看是否有效 – failedprogramming 2013-03-19 21:13:14