在ListBox上滚动

时间:2019-08-12 07:26:45

标签: c# .net wpf scrollviewer mahapps.metro

我使用了mahapps Metro框架,并且我试图启用鼠标滚轮来滚动项目列表。我做了研究,并成功地将滚动条添加到了ListBox中,并且当光标位于ScrollBar上时我可以进行滚动,但是当光标位于ListBox上时,我也希望能够使用鼠标滚轮。我尝试启用ScrollViewer.CanContentScroll =“ True”并使用带有代码的Mouse.MouseWheel事件,但两种解决方案均无效。我没有使用WPF或FrontEnd框架的经验,因此我非常感谢您的帮助。下面,我发布了到目前为止使用的代码。

XAML:

<ScrollViewer Name="DirectoriesViewer" Grid.Row="0" >
   <ListBox MouseWheel="OnScrolling" Name="directories" HorizontalContentAlignment="Stretch" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Mouse.MouseWheel="OnScrolling">
       <ListBox.ItemTemplate>
          <DataTemplate>
              <StackPanel Margin="3">
                  <DockPanel>
                     <!--TextBlock's etc..-->
                  </DockPanel>
              </StackPanel>
           </DataTemplate>
        </ListBox.ItemTemplate>
   </ListBox>
</ScrollViewer>

C#

private void OnScrolling(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
   if (e.Delta < 0)
   {
      DirectoriesViewer.LineDown();
   }
   else
   {
      DirectoriesViewer.LineUp();
   }
 }

0 个答案:

没有答案