我的某些最终用户使用触摸屏,而其他用户则使用PC。在触摸屏上,PreviewMouseUp/Down
与触摸事件处理程序一起触发,从而导致重复的行为(两次执行在PreviewMousUp / Down中编写的功能)。
因此,我的示例Button 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>
为什么MouseDown
和MouseUp
事件处理程序没有得到在电脑上被炒鱿鱼吗?
如果我在触摸屏上执行,它的工作原理就像一个超级按钮(Touch事件处理程序)。但是,在我的PC(VS-2015)上根本无法正常工作。拜托了,谢谢
似乎Click事件处理程序可防止触发MouseDown和MouseUp事件。我希望这是因为,当我从头开始构建自定义控件(如按钮)时,会使用这些事件触发Click事件。这只是我的期望。
无论如何,我尝试了一下,如果您未实现TouchDown / Up,则在触摸和非触摸上均会触发PreviewMouseDown / Up。但是,如果您使用它们实现了TouchDown / Up,则在TOUCH上的执行将如下所示:> TouchDown> PreviewMouseDown> TouchUp> PreviewMouseUp。在NON-TOUCH上的执行将是这样的:> PreviewMouseDown> PreviewMouseUp。因此,我建议您使用PreviewMouseDown / Up,因为它适用于触摸和非触摸。
您也可以使用MouseRightButtonDown / Up与您一起使用。但是您会注意到,它之后会触发MouseDown / Up。您可以通过添加e.Handled = true来简单地防止这种情况。在MouseRightButtonDown / Up处理程序中。
尝试利用这些提示,如果您不能解决,请告诉我,我会与您一起考虑的。祝你好运。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句