将我自己的事件添加到WPF控件中所涉及的内容

本文关键字:控件 自己的 我自己 事件 添加 WPF | 更新日期: 2023-09-27 18:25:20

我经常不得不在WPF项目中使用TouchDown/TouchUp事件来检测"双击";有时在列表框上,有时是按钮,有时是遥控器。如何将DoubleTap事件和事件处理程序添加到这些控件中?工作太大了?

将我自己的事件添加到WPF控件中所涉及的内容

您可以创建一个类,该类是通过引用控件和委托函数构建的。(请原谅我不完美的语法[如果它不完美],我是从内存中键入的)

public class DoubleTap {
    delegate void ActionFunction();
    Control ReferencedControl;
    public DoubleTap ( ref Control referencedControl , delegate actionFunction ) {
        ActionFunction = actionFunction;
        ReferencedControl = referencedControl;
        // apply TouchDown and TouchUp event handlers to ReferencedControl
    }
    // Put your TouchDown and TouchUp functions for testing the double tap here
    // when double tap tests as true then call ActionFunction();
}

您必须为此使用行为。这将包括从System.Windows.Interactivity.Behavior创建派生类型,并重写TouchDown/TouchUp的OnAttached方法。

有关如何实现行为的信息,请参阅WPF教程|行为和WPF中附加行为的介绍。