Как добавить ScrollBar в StackPanel в Silverlight? - PullRequest
4 голосов
/ 22 апреля 2010

У меня есть Grid, 3 на 3 (3 определения строки и 3 определения столбца). Я хочу прокрутить некоторое содержимое (StackPanel) в одной из этих ячеек сетки. Я вполне уверен, что это возможно, но я не могу понять, как. Я пытался добавить элементы управления ScrollViewers и ScrollBar в ячейку сетки, которую я хочу прокрутить, но обычно это приводит к созданию прокрутки для всей страницы.

Edit: Моя проблема более конкретно, как я могу получить прокрутку за 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 Ответ

3 голосов
/ 23 апреля 2010

StackPanel обрабатывает содержимое, имеющее бесконечное пространство. Чтобы прокрутить панель стека, вам нужно будет наложить ограничение на высоту - родительский элемент сетки стека, скорее всего.

...