如何在不弄乱垂直滚动的情况下向PivotItem添加多个控件?

时间:2011-12-03 21:45:43

标签: xaml windows-phone-7 layout windows-phone-7.1

我的Windows Phone Mango应用程序中有一个Pivot控件,其中一个pivot项目有一个列表框。当我只有一个ListBox作为PivotItem的内容时,它完美地工作。

           <controls:PivotItem Header="Item1">
                <ListBox
                    x:Name="longListBox" 
                    ItemsSource="{Binding AllItems}" 
                    Margin="12, 0, 12, 0" Width="440" 
                    ItemTemplate="{StaticResource ItemTemplate}" />
            </controls:PivotItem>

现在我想在PivotItem的列表上方添加更多控件,比如说Image。

           <controls:PivotItem Header="Item1">
                <StackPanel>
                    <Image 
                         Source="/Images/header.png"
                         Height="48"
                         Width="48"/>

                    <ListBox
                        x:Name="longListBox" 
                        ItemsSource="{Binding AllItems}" 
                        Margin="12, 0, 12, 0" Width="440" 
                        ItemTemplate="{StaticResource ItemTemplate}" />

                </StackPanel>
            </controls:PivotItem>

然而,通过这些更改,PivotItem垂直滚动工作非常奇怪,向下移动列表框项目而不是向上移动。实际上,无法访问ListBox底部的项目。

我已经尝试将StackPanel高度设置为一些巨大的数字,尝试添加ScrollViewer,但无法让它工作。

如何解决滚动问题?

1 个答案:

答案 0 :(得分:2)

StackPanel为其子项提供他们要求的任何高度/宽度,这会使内部ListBox误算其实际高度,然后其ScrollViewer将无法正常工作。

尝试将StackPanel更改为Grid两行,它应该有效。

            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>