我是Windows Phone开发的新手,所以请光临我。我有一个带有PivotItem的简单Pivot,如下所示。
<StackPanel>
<controls:Pivot x:Name="TopPivot" Title="Daily Comics" ItemsSource="{Binding ComicsListModel}" SelectionChanged="TopPivot_SelectionChanged" Height="762">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding ComicName}"/>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding PubDate}" HorizontalAlignment="Center" VerticalAlignment="Top" />
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Image x:Name="ComicStrip" Source="{Binding ComicImage}" Stretch="UniformToFill" />
</ScrollViewer>
</StackPanel>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
</StackPanel>
问题是我希望Image(名为“ComicStrip”)如果不完全可见则垂直滚动。这适用于纵向模式,但不适用于lanscape。在lanscape中,图像可以仅部分滚动,图像的底部部分将不可见。
我认为当我处于lanscape模式时,我必须告诉ScrollViewer它的高度,但我不知道如何以及什么是处理这种用例的最佳实践。看起来像是一个基本用例。
我应该做什么建议?
答案 0 :(得分:1)
我认为这里的问题是使用StackPanel作为Pivot项目模板!如果您使用网格,那么您应该没有任何问题。
将Pivot项目模板替换为:
<controls:Pivot.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Text="{Binding PubDate}" />
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1">
<Image x:Name="ComicStrip" Source="{Binding ComicImage}" Stretch="UniformToFill" />
</ScrollViewer>
</Grid>
</DataTemplate>
</controls:Pivot.ItemTemplate>