枢轴页面部分的垂直滚动

时间:2013-11-14 10:01:53

标签: c# xaml windows-phone-7 listbox pivot

我在数据绑定数据透视页(WP 7.1)中垂直滚动时遇到问题。

我已尝试在此处和MSDN上发布的不同解决方案,但它们似乎都不适合我。 我有一份清单  我在透视页面中显示的ObservableCollection中的News对象。到目前为止一切都很好......

我希望能够滚动新闻项的主要文本,但页面上的菜单和标题是固定的。 我试过制作一个网格并用Listbox包围可滚动内容,现在是ScrollViewer,但是我无法在页面上滚动..当我尝试滚动时,我可以滚动几行文本,然后是文本恢复到原来的位置。很沮丧!!!

我尝试的代码是:

    <!--Pivot Control-->
    <controls:Pivot  x:Name="PivotNews"  
                     Grid.Row="2"
        ItemsSource="{Binding NewsCollection}" >
        <controls:Pivot.HeaderTemplate>
            <DataTemplate>
                <!--<TextBlock Text="Seneste nyheder" />-->
            </DataTemplate>
        </controls:Pivot.HeaderTemplate>
        <controls:Pivot.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                            <!--<RowDefinition Height="*" />-->
                        </Grid.RowDefinitions>
                        <Grid x:Name="HeaderLine"
                              Grid.Row ="0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="150" />
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
                            <Image Source="{Binding ImageUri}" 
                                Grid.Column="0" 
                                   Height="150"/>
                            <TextBlock Text="{Binding Header}" 
                               FontWeight="ExtraBold" 
                               FontFamily="{StaticResource PhoneFontFamilyNormal}"
                               TextWrapping="Wrap"
                               Grid.Column="1" 
                               Margin="10,0,0,10"/>
                        </Grid>
                        <ScrollViewer x:Name="ScrollViewerNews" Grid.Row="1">
                            <StackPanel>
                                <TextBlock Text="{Binding SubHeader}" 
                                   FontFamily="{StaticResource PhoneFontFamilyNormal}" 
                                   FontWeight="Bold" 
                                   TextWrapping="Wrap" />
                                <TextBlock Text="{Binding MainText}" 
                        TextWrapping="Wrap" />
                            </StackPanel>
                        </ScrollViewer>
                    </Grid>
                </StackPanel>
            </DataTemplate>
        </controls:Pivot.ItemTemplate>
    </controls:Pivot>

1 个答案:

答案 0 :(得分:0)

只需删除ItemTemplate中的第一个StackPanel。

当你使用StackPanel时,它有自己的高度,不依赖于Page高度,行高度值“*”试图适应可用空间,在这种情况下比页面高度更大。 / p>