我正在开发一款将在带触摸屏的笔记本电脑上使用的应用程序。因此,MouseDown事件基本上是在做同样的动作,应该怎么做。
我写的代码是这样的 -
XAML
<Button MouseDown="Button_OnMouseDown" TouchDown="Button_OnTouchDown"/>
C#
private void Button_OnMouseDown(object sender, MouseButtonEventArgs e)
{
Action();
}
private void Button_OnTouchDown(object sender, TouchEventArgs e)
{
Action();
}
private void Action()
有更好的方法吗?任何反馈都表示赞赏。
答案 0 :(得分:12)
使eventArgs更通用。使用EventArgs
代替MouseEventArgs
和TouchEventArgs
。
private void Button_OnMouseDownOrTouchDown(object sender, EventArgs e)
{
Action();
}
现在你可以从XAML挂钩到同一个事件:
<Button MouseDown="Button_OnMouseDownOrTouchDown"
TouchDown="Button_OnMouseDownOrTouchDown"/>
这称为代表的反差异。详细了解here。
委托可以与具有类型参数的方法一起使用 是委托签名参数类型的基本类型。同 逆变,您可以使用一个事件处理程序而不是单独的 处理程序。例如,您可以创建一个接受的事件处理程序 EventArgs输入参数并将其与Button.MouseClick事件一起使用 它将MouseEventArgs类型作为参数发送,并且还带有 发送KeyEventArgs参数的TextBox.KeyDown事件。