我的一些最终用户拥有触摸屏,其他用户则拥有 PC。在触摸屏上,PreviewMouseUp/Down
与触摸事件处理程序一起触发,导致重复行为(在 PreviewMousUp/Down 中编写的函数被执行两次)。
所以我的示例按钮 XAML:
<Button x:Name="Whatever" Background="Transparent" MouseUp="Whatever_MouseUp" MouseDown="Whatever_MouseDown" TouchUp="Whatever_TouchUp" TouchDown="Whatever_TouchDown">
<StackPanel>
<TextBlock x:Name="WhateverText" Text="Soemthing" FontSize="13"/>
<Image x:Name="WhateverImage" Source="bla/bla/bla"/>
</StackPanel>
</Button>
Why MouseDown
and MouseUp
事件处理程序不会在 PC 上被触发?
如果我在触摸屏上执行,它就像一个魅力(触摸事件处理程序)。然而,在我的电脑(VS-2015)上它根本不起作用。请并谢谢
Click 事件处理程序似乎阻止了 MouseDown 和 MouseUp 事件的触发。我希望如此,因为当我从头开始构建按钮等自定义控件时,我使用这些事件来触发 Click 事件。
这只是我的期望。
不管怎样,我尝试了一下,如果您没有实现 TouchDown/Up,PreviewMouseDown/Up 会在触摸和非触摸上触发。但如果你用它们实现 TouchDown/Up,TOUCH 上的执行将如下所示: > TouchDown > PreviewMouseDown > TouchUp > PreviewMouseUp。在非触摸上的执行将如下所示:> PreviewMouseDown > PreviewMouseUp。因此,我建议您使用 PreviewMouseDown/Up,因为它适用于触摸和非触摸。
您也可以使用 MouseRightButtonDown/Up 它会与您配合。但您会注意到 MouseDown/Up 在它之后被触发。您可以通过添加 e.Handled = true; 来简单地防止这种情况发生。在 MouseRightButtonDown/Up 处理程序内。
尝试利用这些提示,如果您无法解决问题,请告诉我,我会与您一起思考。祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)