我有一个Grid
,3乘3(3个RowDefinitions和3个ColumnDefinitions)。我想在其中一个网格单元格中滚动一些内容(StackPanel
)。我很确定这是可能的,但我无法弄清楚如何。我已经尝试将ScrollViewers
和ScrollBar
控件添加到我想要滚动的网格单元格中,但这通常最终会为整个页面创建滚动。
编辑:
我的问题更具体地说是如何滚动StackPanel
。如果我遇到的问题就是一个例子:
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid>
<TextBlock FontSize="16">1,1</TextBlock>
</Grid>
<Grid Grid.Column="1">
<TextBlock FontSize="16">1,2</TextBlock>
</Grid>
<Grid Grid.Row="1">
<TextBlock FontSize="16">2,1</TextBlock>
</Grid>
<Grid Grid.Column="1" Grid.Row="1">
<StackPanel>
<TextBlock>Title</TextBlock>
<Grid>
<ScrollViewer>
<StackPanel>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
<TextBlock FontSize="32">2,2</TextBlock>
</StackPanel>
</ScrollViewer>
</Grid>
</StackPanel>
</Grid>
</Grid>
答案 0 :(得分:3)
StackPanel将其内容视为具有无限空间。要滚动stackpanel,你将不得不在某些东西上设置一个高度约束 - 很可能是stackpanel的网格父。