2012-09-08 48 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>