下面是一些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