2

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

我已经尝试了此处和 MSDN 上发布的不同解决方案,但它们似乎都不适合我。我在 ObservableCollection 中有一个新闻对象列表,我在数据透视页面中显示。到目前为止,一切都很好...

我希望能够滚动新闻项目的正文,但让菜单和标题固定在页面上。我尝试制作一个网格并通过 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>
4

1 回答 1

0

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

当您使用 StackPanel 时,它有自己的高度,不依赖于页面高度,并且行高值“*”试图适应可用空间,在这种情况下大于页面高度。

于 2013-11-14T11:52:34.243 回答