如何确定按钮是否被点击或触摸?

How to determine if button was clicked or touched?

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

您必须设置事件处理程序。在设计器中,双击按钮即可为您设置。

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

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

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

您可以订阅PreviewMouseDown and PreviewTouchDown

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.");
    }

我认为您无法在实际的点击事件中访问其中任何一个的事件参数。

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

Windows 7及其更高版本能够接收来自多个触敏设备的输入。 WPF 应用程序还可以通过在发生触摸时引发事件来像处理其他输入(例如鼠标或键盘)一样处理触摸输入。

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

WPF 使应用程序能够响应触摸。

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

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