如何在Silverlight中将ScrollBar添加到StackPanel?

时间:2010-04-22 13:34:15

标签: silverlight xaml scroll stackpanel

我有一个Grid,3乘3(3个RowDefinitions和3个ColumnDefinitions)。我想在其中一个网格单元格中滚动一些内容(StackPanel)。我很确定这是可能的,但我无法弄清楚如何。我已经尝试将ScrollViewersScrollBar控件添加到我想要滚动的网格单元格中,但这通常最终会为整个页面创建滚动。

编辑: 我的问题更具体地说是如何滚动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>

1 个答案:

答案 0 :(得分:3)

StackPanel将其内容视为具有无限空间。要滚动stackpanel,你将不得不在某些东西上设置一个高度约束 - 很可能是stackpanel的网格父。