GridView を使用してアイテムのリストを表示しています。マウスのスクロール ホイールを使用して、GridView が含まれているページをスクロールできるようにする必要があります。これは、GridView のテンプレートをオーバーライドすることで簡単に実現できます。
<GridView.Template>
<ControlTemplate>
<ItemsPresenter />
</ControlTemplate>
</GridView.Template>
ただし、タッチ デバイスから項目を選択できるようにする必要もあります。これは通常、項目を下にフリックしてから選択します。上記のテンプレート オーバーライドを適用すると、タッチ選択メカニズムが壊れます。
Blend に入り、以下に示す GridView のデフォルト テンプレートを見始めました。
<ControlTemplate
TargetType="GridView">
<Border
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}">
<ScrollViewer
x:Name="ScrollViewer"
BringIntoViewOnFocusChange="{TemplateBinding ScrollViewer.BringIntoViewOnFocusChange}"
HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
IsHorizontalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsHorizontalScrollChainingEnabled}"
IsVerticalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsVerticalScrollChainingEnabled}"
IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}"
TabNavigation="{TemplateBinding TabNavigation}"
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}">
<ItemsPresenter
HeaderTemplate="{TemplateBinding HeaderTemplate}"
Header="{TemplateBinding Header}"
HeaderTransitions="{TemplateBinding HeaderTransitions}"
Padding="{TemplateBinding Padding}" />
</ScrollViewer>
</Border>
</ControlTemplate>
ScrollViewer を削除するか、水平スクロール部分を何らかの方法で無効にすると、タッチ選択が機能しなくなります。
マウスのスクロールとタッチ選択を同時に有効にするにはどうすればよいですか?
明確にするために、アクションを同時に行う必要はありません。どちらも、同じ GridView の同じページで個別に作業する必要があります。