2012-09-08 51 views
2

我想在Windows 7上创建一个体验(使用触摸),我可以有一个只能垂直滚动的外部ScrollViewer(这是屏幕的大小)。在那个ScrollViewer里面,我会有几个其他的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> 

回答

0

我有同样的问题,我想外一个水平滚动和内我有3个scrollviewers,我想垂直滚动。以下是一些代码:

<ScrollViewer VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Visible" HorizontalScrollMode="Enabled"> 
    <ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto"> 
     Code 
    </ScrollViewer> 
    ... 
</ScrollViewer>