我想在Windows7上创造一种体验(使用触摸屏),在那里我可以拥有一个只能垂直滚动的外部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>发布于 2014-04-09 20:15:00
我也遇到了同样的问题,我想让外部的滚动条水平滚动,而里面有3个我想垂直滚动的滚动条。下面是一些代码:
<ScrollViewer VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Visible" HorizontalScrollMode="Enabled">
<ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto">
Code
</ScrollViewer>
...
</ScrollViewer>https://stackoverflow.com/questions/12327093
复制相似问题