Windows Phone如何垂直滚动

时间:2012-02-18 16:55:27

标签: windows-phone-7

我刚刚开始在WinPhone开发中,无法弄清楚如何设置垂直滚动。例如,我已经启动了一个新的Pivot App,这段代码允许用户向上滚动并拥有以查看所有条目:

<controls:PivotItem Header="Login">
    <!--Double line list with text wrapping-->
    <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
        <ListBox.ItemTemplate>
            <DataTemplate>
              <StackPanel Margin="0,0,0,17" Width="432" Height="78">
                  <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                  <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
              </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</controls:PivotItem>

现在,当我添加自己的数据透视表项目时,堆叠面板上的项目数量多于屏幕上任何时候都可以看到的数量,它将不允许我滚动查看所有项目。我在这里缺少什么?

感谢。

3 个答案:

答案 0 :(得分:23)

在StackPanel上添加ScrollViewer,它将使其可滚动。

答案 1 :(得分:6)

您提供的示例代码中的ListBox具有内置滚动功能。但是,如果您没有使用已具有此滚动功能的内容,则必须添加ScrollViewer

<controls:PivotItem Header="Example">
    <ScrollViewer Margin="12,0,12,0">
        <StackPanel>
            <TextBlock Text="Example1" FontSize="150" />
            <TextBlock Text="Example2" FontSize="150" />
        </StackPanel>
    </ScrollViewer>
</controls:PivotItem>

答案 2 :(得分:1)

在枢轴控制中,如果内容溢出垂直页面,则应该有默认的“垂直”滚动。

我对属性限制的列表框有类似的控制权。拥有“列表”应该会自动允许您滚动。

不要在堆栈面板上添加滚动查看器,因为它会为您不想要的每个列表项启用滚动。

<controls:PivotItem Header="all authors" Foreground="#FF0C388A">
            <Grid>
                <ListBox Margin="0,0,-12,0" ItemsSource="{Binding AllAuthorsList}" Foreground="#FF0C388A">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                                <StackPanel Margin="0,0,0,17" Width="432" Height="Auto">
                                    <TextBlock Tap="TextBlockAuthor_Tap" Text="{Binding}"  TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Foreground="#FF0C388A"/>
                                </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </Grid>
        </controls:PivotItem>