ScrollViewer
Windows 7 (タッチを使用) で、垂直方向にのみスクロールできるアウター (画面のサイズ) を使用できるエクスペリエンスを作成したいと考えています。その中には、本棚のように水平方向にのみスクロールするScrollViewer
他のコントロールがいくつかあります。ScrollViewer
これはできますが、イベントのタッチとフォーカスに問題があります。水平にパンする場合は、タッチしている水平方向のみScrollViewer
がスクロールするようにし、垂直方向にパンする場合は、外側のみScrollViewer
をスクロールするようにします。
現時点では (コードの介入なしで)、ネストScrollViewer
されたコントロールは、水平 (内側)ScrollViewer
コントロールがタッチ フォーカスを取得し、外側の垂直コントロールがScrollViewer
スクロール イベントを発生させないように見えることを意味します。
添付イベントまたはプレビュー イベントを使用してタッチの動きをキャプチャし、スクロール メソッドを起動できると思いますが、このようなことを達成する最善の方法はわかりません。
私が持っている XAML の概要は次のとおりです。
<ScrollViewer x:Name="OutterScrollViewer" HorizontalScrollBarVisibility="Disabled" PanningMode="VerticalOnly">
<StackPanel Orientation="Vertical">
<ScrollViewer x:Name="ScrollViewer1" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled">
...content...
</ScrollViewer>
<ScrollViewer x:Name="ScrollViewer2" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled">
...content...
</ScrollViewer>
<ScrollViewer x:Name="ScrollViewer3" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" PanningMode="HorizontalOnly">
...content...
</ScrollViewer>
</StackPanel>
</ScrollViewer>