Helix Toolkit 如何使用 MouseWheelEventHandler 运行 其他 类 中的特定方法

Helix Toolkit How to use MouseWheelEventHandler to run specific methods in other classes

我想 运行 自定义相机的特定方法 class 每当用户在 helix 工具包视图中放大或缩小时,我的程序 运行 正在其中。 此功能的一个关键特性是从事件中获取 mouseargs,因此我可以以与滚动刻度数成比例的方式调整相机。[​​=14=]

我开始尝试这个:

    public event PropertyChangedEventHandler PropertyChanged;

    public virtual void onMouseWheeled(MouseDevice Mouse, int time, 
    MouseWheelEventArgs e) {
        MouseWheel?.Invoke(this, new MouseWheelEventArgs(Mouse, time, 
    e.Delta)); }

    //This next line goes in a MainWindow_Loaded method that gets called in the 
    //MainWindowConstructor

    void MainWindow_Loaded(object sender, RoutedEventArgs e) {
        view1.MouseWheel += new MouseWheelEventHandler(onMouseWheeled(Cursor, 
    Time.simTime, view1.MouseWheeledEventArgs)); }

但是当我尝试将 onMouseWheeled 方法添加到 MouseWheelEventHandler 时,我在弄清楚如何将 MouseWheelEventArgs 对象传递到 onMouseWheeled 方法时遇到了很多麻烦。假设这句话从根本上没有错,这只不过是一厢情愿的想法,我想弄清楚的最后一件事是如何获取鼠标滚轮事件参数,以便我可以将其传递给方法。

然后我试了这个:

    public event MouseWheelEventHandler MouseWheel;

    public virtual void onMouseWheeled(object sender, MouseWheelEventArgs e)
    {
        Console.WriteLine(e.Delta);
    }
    //In Main Window Loaded method...
    void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    {
    view1.MouseWheel += onMouseWheeled;
    }

但是当我滚动滚轮时我没有得到任何输出。我认为这可能真的有效,因为 view1 是螺旋线 window 我将所有对象附加到它,作为 view1 的子对象。

基本上我的主要问题是:

调用实际上做了什么?我只有这个 运行 尝试查看它是否有效,因为 onPropertyChanged 方法我总是像这样使用 运行 Invoke 命令。我实际上不确定我要去哪里。

处理程序如何工作?

如何调用事件参数以便我可以使用它们并将它们作为对象传递给其他方法?

感谢您的宝贵时间。再次感谢您给我的任何和所有指示和建议。

尝试使用预览鼠标滚轮事件