触屏操作:touch后没有click

黑娃 2015-01-28 09:22:33
问题:手指单指触摸一个控件后,只触发了touch事件,没有处罚click
描述:窗口A用showdialog弹出一个新窗口B,B.close以后,自然就回到了A窗口,这时我去用手指点击任何一个A的按钮,都只能触发touch不能触发click,且只有B关闭后的第一次点击会这样,第二次就都能触发了。而且只有在多点触控的屏幕下会有这个问题(电容屏),在单点触控的屏幕下就没有这个问题。
...全文
477 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
树袋熊的夏天 2019-01-14
  • 打赏
  • 举报
回复
请问下电阻屏支持Touch事件吗???
宇峰科技 2015-02-02
  • 打赏
  • 举报
回复
不是所有控件都支持click事件的
黑娃 2015-01-29
  • 打赏
  • 举报
回复
而且这个现象只有在多点触控下才会出现,我也观察了一下,我用的单点触控的win8都是完全模拟了鼠标,所以手指触控和鼠标操作触发的事件一模一样 但多点触控的win8则似乎不是这么简单粗暴了,它会依次触发touch系列的 enter, down, move,up, leave事件,然后转换成一个鼠标事件继续传播下去。我想把touch事件自动转换为鼠标事件是wpf的内部机制,一定有其特别的判定且不是一次touch就一定要转换为一次鼠标事件这么简单。当我上面说的情况出现时,我看见touch事件结束后没有转换出鼠标事件,因此我看见的界面效果就相当于什么也没有触发。
黑娃 2015-01-29
  • 打赏
  • 举报
回复
引用 1 楼 csjtxy 的回复:
我觉得,应该是在关闭B窗口的时候,将A窗口主动激活一下,这样应该就正常了。
不是这个原因,Actived(),Focus()之类的方法我在主窗口,新窗口都试过,仍然没有正常。 我现在找到了一个原因:是由事件引起的,比如主窗口A中的Textbox的PreviewMouseLeftButtonDown事件中新建窗口B并showdialog(),则,对B的第一次触摸必定失败,但是如果在MouseLeftButtonUp事件中showdialog,则一切正常。 反之,在B中触发关闭B窗口的事件如果也是Preview之类的,则回到父窗口A后的第一次触屏必定也失败。 这个原因是什么我也不清楚,我不了解wpf的事件类型,以及里面有些什么玄机,也不知道这算不算是一个bug。 我现在认定用Preview系列的事件来showdialog都会出这个问题,当然我没有对每个控件都一一实验。
lanymy 2015-01-29
  • 打赏
  • 举报
回复
click 和 touch 互相转换的时候 不要用down 改成up
csjtxy 2015-01-28
  • 打赏
  • 举报
回复
我觉得,应该是在关闭B窗口的时候,将A窗口主动激活一下,这样应该就正常了。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧