2

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

1 に答える 1

0

私は同じ問題を抱えていました。外側のものを水平方向にスクロールさせ、内側には垂直方向にスクロールさせたい3つのスクロールビューアがありました。ここにいくつかのコードがあります:

<ScrollViewer VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Visible" HorizontalScrollMode="Enabled">
    <ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto">
        Code
    </ScrollViewer>
    ...
</ScrollViewer>
于 2014-04-09T12:15:00.020 に答える