2015-02-23 124 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