我想在 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>