2015-02-23 121 views
2
我裏面滾動的ScrollViewer列表框

XAML:如何使用鼠標滾輪

<ScrollViewer HorizontalAlignment="Center" PreviewMouseWheel="myScrollViewer_PreviewMouseWheel" Name="myScrollViewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto"> 
      <Grid Width="1200"> 
       <ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" MouseMove="listbox_MouseMove" Background="AliceBlue" Height="350" Width="200" HorizontalAlignment="Center" Name="listbox"/> 
      </Grid> 
    </ScrollViewer> 

CS:

private void myScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e) 
    { 
     if (e.Delta < 0) // wheel down 
     { 
      if (myScrollViewer.HorizontalOffset + e.Delta > 0) 
      { 
       myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta); 
      } 
      else 
      { 
       myScrollViewer.ScrollToLeftEnd(); 
      } 
     } 
     else //wheel up 
     { 
      if (myScrollViewer.ExtentWidth > myScrollViewer.HorizontalOffset + e.Delta) 
      { 
       myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta); 
      } 
      else 
      { 
       myScrollViewer.ScrollToRightEnd(); 
      } 
     } 
    } 

現在的鼠標滾輪事件的ScrollViewer滾動時,如果我的鼠標越過列表框。我想要:如果我的鼠標移過列表框並停留一段時間(可能是1秒或2秒),滾動應移動到列表框。如果鼠標不停留在ListBox上(1或2秒),則滾動不應移動到ListBox。 ScrollViewer中可能有多個ListBox。

回答

0

它添加到你的列表框:

ScrollViewer.CanContentScroll =「真」

+0

框滾動沒有與鼠標滾輪的工作,甚至它得到了一個焦點 – 2015-02-23 09:21:06