1

以下のように、Pivo​​tItem を持つ単純なピボットがあります。

<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>

問題は、画像 (「ComicStrip」という名前) が完全に表示されていない場合に垂直方向にスクロールすることです。これはポートレート モードでは機能しますが、ランドスケープ モードでは機能しません。風景では、画像は部分的にしかスクロールできず、画像の下部は表示されません。

風景モードのときは ScrollViewer に高さを伝える必要があると思いますが、この種のユースケースに対処するためのベストプラクティスとは何かわかりません。ただし、基本的な使用例のようです。

私が何をすべきかアドバイスはありますか?

4

1 に答える 1

1

ここでの問題は、ピボットアイテムテンプレートにStackPanelを使用していることだと思います。グリッドを使用する場合は、問題は発生しないはずです。

ピボットアイテムテンプレートを次のように置き換えます。

<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>
于 2012-04-20T08:15:01.290 に答える