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

Joh*_*ohn 5 wpf touchscreen click button

在WPF中,是否可以区分是使用鼠标单击按钮还是使用触摸屏触摸按钮?

Der*_*ler 6

您可以订阅PreviewMouseDownPreviewTouchDown

页面.xaml

<Button PreviewMouseDown="Button_PreviewMouseDown"
        PreviewTouchDown="Button_PreviewTouchDown" />
Run Code Online (Sandbox Code Playgroud)

页面.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.");
    }
Run Code Online (Sandbox Code Playgroud)

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

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