如何确定是否单击或触摸了按钮?

时间:2016-08-09 18:39:35

标签: wpf button click touchscreen

有没有办法区分按钮是用鼠标点击还是用WPF中的触摸屏触摸?

3 个答案:

答案 0 :(得分:3)

您可以订阅PreviewMouseDownPreviewTouchDown

<强> Page.xaml

<Button PreviewMouseDown="Button_PreviewMouseDown"
        PreviewTouchDown="Button_PreviewTouchDown" />

<强> Page.xaml.cs

    private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("Mouse was used.");
    }

    private void Button_PreviewTouchDown(object sender, TouchEventArgs e)
    {
        MessageBox.Show("Touchscreen was used.");
    }

我不相信你能够在实际点击事件中访问其中任何一个的事件。

如果你需要在那里进行工作而不是预览事件,我建议在预览事件中设置一个实例变量,这样当你到达点击事件时,你知道你来自哪里。

答案 1 :(得分:0)

您必须设置一个事件处理程序。在设计器中,双击按钮,然后为您设置。

然后在后面的代码中添加你想要的代码。

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.Title = "Clicked";
}

您可以添加Touch事件以及TouchDown,TouchUp等

答案 2 :(得分:0)

Windows 7及其更高版本可以从多个触敏设备接收输入。 WPF应用程序还可以通过在触摸发生时引发事件来处理触摸输入作为其他输入,例如鼠标或键盘。

WPF在触摸发生时暴露两种类型的事件 - 触摸事件和操纵事件。触摸事件提供有关触摸屏上每个手指及其移动的原始数据。操纵事件将输入解释为某些操作。本节将讨论这两种类型的事件。

WPF使应用程序能够响应触摸。例如,您可以使用触摸敏感设备(例如触摸屏)上的一个或多个手指与应用程序进行交互。本演练创建一个应用程序,使用户可以使用触摸来移动,调整大小或旋转单个对象。 / p>

来源MSDN:https://msdn.microsoft.com/en-us/library/ee649090.aspx

另请阅读此代码项目文章 - http://www.codeproject.com/Articles/692286/WPF-and-multi-touch