下面是一些XAML顯示如何使用GridSplitter
如你所描述:
<Grid VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Fill="Red" />
<Rectangle Grid.Row="1" Fill="Orange" />
<Rectangle Grid.Row="2" Fill="Yellow" />
<Rectangle Grid.Row="3" Fill="Green" />
<Rectangle Grid.Row="4" Fill="Blue" />
<Rectangle Grid.Row="5" Fill="LightBlue" />
<ListBox Grid.Row="6" Background="Indigo">
<ListBoxItem>Hello</ListBoxItem>
<ListBoxItem>World</ListBoxItem>
</ListBox>
<GridSplitter Grid.Row="7" Height="5" Background="Gray"
VerticalAlignment="Top" HorizontalAlignment="Stretch" />
<ListBox Grid.Row="7" Background="Violet" Margin="0,5,0,0">
<ListBoxItem>Hello</ListBoxItem>
<ListBoxItem>World</ListBoxItem>
</ListBox>
</Grid>
避免將GridSplitter在它自己的行。將它放在現有的行內,並將其設置爲頂部(或底部,如果位於上部單元格中),則水平拉伸。請注意,我已將它的高度設置爲5,然後給第二個ListBox指定5的上邊距,以便兩個元素都不隱藏另一個元素的任何部分。
希望有所幫助。
我試圖與我的代碼,它似乎並沒有工作。網格分離器只是閒置,不會向上或向下移動。我有3行高度設置爲自動:一行包含元素的堆棧面板,一行包含網格,另一行包含另一個堆棧元素。任何想法,爲什麼它不會滾動? – Shafique 2009-09-16 16:17:10
嗨Shafique。那麼你的GridSplitter的實現方式肯定會有所不同。嘗試複製上面的所有XAML並粘貼爲Kaxaml中Page元素的子元素。你會看到GridSplitter按預期工作。從那裏,您可以遷移XAML以更加緊密地匹配您擁有的內容並找到確切的問題。 http://www.kaxaml.com – 2009-09-17 12:50:51
我在那裏看到了一些他們有VerticalAlighment =「中心」的愚蠢示例。這是行不通的。我不確定它什麼時候會,但它不適合我。使它頂部固定它。我仍然不確定它是如何工作的。我非常喜歡SplitterPanel的簡潔,但是哦... – 2009-12-11 04:23:47