1

WinRT 内に、コンテンツを水平方向に表示する標準のグリッドビューがあるシナリオがあります。通常の WinRT スクロールビューアーは、画面の右側に表示されるコンテンツに対してここで作動するため、多くの場合は「左にスワイプ」できます。 WinRT アプリケーション。

XAML の gridviewitems のデータ テンプレートは次のとおりです。

            <DataTemplate>
                <Grid Background="White" Margin="0,0,1,1">
                    <ScrollViewer Grid.Column="3" Width="200">
                        <ListView Width="600" Height="170" Margin="0" Padding="10" ItemsSource="{Binding Path=ProductListItems}">
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <Image Source="{Binding Path=LargeImage}" Width="200" Height="150" Stretch="UniformToFill"/>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>
                    </ScrollViewer>
                </Grid>
            </DataTemplate>

ソースからわかることを願っていますが、テンプレート項目は、リストビューアー内に保存された画像をスクロールビューアーにラップして表示しようとしています (常に約 3 が表示されます)。オーバーフローした画像はスクロールビューアー内でスワイプできます。

問題は、メインの親グリッドビューがすべての入力を盗み、スワイプ (テンプレート化されたリストビューのスクロールビューアー内に配置された場合でも) が登録されないことです。

このデフォルトの動作を上書きして、2 種類のスクロールを制御する方法を知っている人はいますか?

ありがとう、

4

1 に答える 1

1

ScrollViewerのIsHorizo​​ntalScrollChainingEnabledプロパティは、必要なことを行うのに役立つと思いますが、そうは言っても、これは本当に悪い設計であるため、やろうとしていることを決して行うべきではありません。GridViews または ListViews を ScrollViewer 内に配置したり、これらを互いに入れ子にしたりしないでください。GridView に収まるよりも多くのコンテンツを表示する方法を提供する場合は、それを表示できる別のページへの移動を許可する必要があります。あなたの場合、GridView 内の ScrollViewer 内に ListView をネストしようとしています。これは、基本的に、ビジュアル ツリーに 3 つの ScrollViewer をネストしていることを意味します。これは二重に悪いことです。

于 2012-10-22T16:33:19.330 に答える