【发布时间】:2016-12-15 22:28:47
【问题描述】:
有没有办法区分按钮是用鼠标单击还是使用 WPF 中的触摸屏触摸?
【问题讨论】:
标签: wpf button click touchscreen
有没有办法区分按钮是用鼠标单击还是使用 WPF 中的触摸屏触摸?
【问题讨论】:
标签: wpf button click touchscreen
您必须设置一个事件处理程序。在设计器中,双击按钮,将为您设置。
然后在后面的代码中添加你想要的任何代码。
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Title = "Clicked";
}
您还可以添加 TouchDown、TouchUp 等触摸事件。
【讨论】:
您可以订阅PreviewMouseDown和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
【讨论】: