2

我想在 Windows 7(使用触摸)上创建一种体验,我可以在其中拥有只能垂直滚动的外部ScrollViewer(即屏幕大小)。在里面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 回答