如何以与MouseWheelEvent相同的方式以编程方式滚动ListBox?

时间:2012-06-21 11:47:09

标签: c# wpf

好的,我有以下问题:

我想上下滚动一个溢出的ListBox。

我想在继承自ListBox的自定义控件中以编程方式执行此操作。我已经看过并测试过诸如scrollIntoView之类的内容。但是我希望滚动类似于使用鼠标滚轮时的滚动。

我根本不想让鼠标参与进来(我正在为Kinect开发,因为有2个游标,我不想使用鼠标事件args)< / p> 谷歌的搜索并没有多少出现:我已经阅读了很多关于如何使用scrollIntoView滚动代码或者放置滚动条等的线程。

1 个答案:

答案 0 :(得分:3)

我认为这将涉及两个步骤:

  1. 在listBox模板中找到scrollViewer控件
  2. 在该scrollViewer中执行实际滚动
  3. 要实施第一步,请查看here。以下是从那里提取的代码段:

    this.Loaded += MainWindow_Loaded;
    
    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        var scrollViewer = listbox.Template.FindName("Scroller", listbox);
    }
    

    对于第二步,您应该使用hereLineDownPageDown中的一种方法。

    P.S。:我没有测试过这种方法,因为我没有安装VS,所以请随意添加所需的代码。