WPF将MouseDown和TouchDown结合到同一事件中

我正在开发一款应用程序,将用于带触摸屏的笔记本电脑上。 因此,MouseDown事件基本上是在做同样的动作,应该怎么做。

我写的代码是这样的 –

XAML

C#

 private void Button_OnMouseDown(object sender, MouseButtonEventArgs e) { Action(); } private void Button_OnTouchDown(object sender, TouchEventArgs e) { Action(); } private void Action() 

有一个更好的方法吗? 任何反馈都表示赞赏。

使eventArgs更通用。 使用EventArgs代替MouseEventArgsTouchEventArgs

 private void Button_OnMouseDownOrTouchDown(object sender, EventArgs e) { Action(); } 

现在你可以从XAML挂钩到同一个事件:

  

这就是代表们反差异 。 阅读更多相关信息。

委托可以与具有类型参数的方法一起使用,该类型是委托签名参数类型的基本类型。 使用逆变,您可以使用一个事件处理程序而不是单独的处理程序。 例如,您可以创建一个接受EventArgs输入参数的事件处理程序,并将其与Button.MouseClick事件一起使用,该事件将MouseEventArgs类型作为参数发送,并且还使用发送KeyEventArgs参数的TextBox.KeyDown事件。