我正在开发一个支持基本触摸事件(而不是操作)的WPF应用程序。我使用龚DragDrop来处理拖放操作。我遇到的问题如下:
在预览拖放事件(使用龚DragDrop)中,我显示一个对话框并提示用户确认删除位置,用户必须单击“是”按钮才能完成删除,或者单击"No“按钮取消删除。我可以使用鼠标点击这两个按钮,但没有运气的触摸事件。
我使用spy++来监视从窗口派生出来的提示对话框的鼠标事件。鼠标事件和触摸事件都被记录下来。
为什么鼠标事件不起作用?有什么办法能让你接触到工作吗?
发布于 2015-10-29 19:14:13
显然这是WPF中的一个bug。微软已经决定忽略它,并删除了这里的bug报告:https://connect.microsoft.com/VisualStudio/feedback/details/619521/wpf-touch-bug
引用Connect是为了将来的版本,而不是修复来源的bug。
这个MSDN论坛线程详细介绍了一些可怜的讨厌鬼试图在这个问题上与微软打交道。注意:使用Visual 2013升级到.Net 4.5.1并不能解决此问题。
但是,他找到了一个解决办法,就是在一个新线程上打开对话框。
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Send, new Action(delegate
{
var window = new MyWindowView
{
IsManipulationEnabled = true,
Owner = Application.Current.MainWindow,
Topmost = true
};
WindowInteropHelper helper = new WindowInteropHelper(window);
helper.Owner = helper.Handle;
window.ShowDialog();
}));
https://stackoverflow.com/questions/21178504
复制