C# 如何在<;上使用mouseDown和mouseUp;按钮/>;
我在XAML中声明了一个按钮,它具有MouseDown和MouseUp属性,这两个属性都调用指定的方法C# 如何在<;上使用mouseDown和mouseUp;按钮/>;,c#,wpf,xaml,mouseevent,mediaelement,C#,Wpf,Xaml,Mouseevent,Mediaelement,我在XAML中声明了一个按钮,它具有MouseDown和MouseUp属性,这两个属性都调用指定的方法 <Button x:Name="btnBackward" Content="Backward" MouseDown="btnBackward_MouseDown" MouseUp="btnBackward_MouseReleased" Width="50" Height="25" Margin="65,400,377,45"/>
<Button x:Name="btnBackward" Content="Backward"
MouseDown="btnBackward_MouseDown"
MouseUp="btnBackward_MouseReleased" Width="50" Height="25"
Margin="65,400,377,45"/>
我缺少什么?您应该在此处使用
预览事件。因此,与其使用MouseDown
和MouseUp
,不如使用PreviewMouseDown
和PreviewMouseUp
<Button x:Name="btnBackward" Content="Backward"
PreviewMouseDown="btnBackward_MouseDown"
PreviewMouseUp="btnBackward_MouseReleased"/>
理由表-
按钮抑制MouseLeftButtonDown和MouseLeftButtonDown
中按钮或其组合元素引发的冒泡事件
支持捕获鼠标并引发一个总是
由按钮本身升起。事件及其数据仍在继续
沿着路线,但由于按钮将事件数据标记为
已处理,仅事件的处理程序明确指出
应在HandledEventsTo案件中采取行动。如果其他元素
对于应用程序的根,您仍然希望有机会
处理控件抑制事件时,一种替代方法是附加
HandleEventsTo指定为true的代码中的处理程序。但通常是
更简单的方法是更改要处理的布线方向
与输入事件等效的预览例如,如果控件
抑制MouseLeftButtonDown,请尝试为其附加处理程序
改为预览鼠标左键向下
但是,如果右键单击按钮MouseUp
和MouseDown
事件将非常有效,因为在这种情况下,单击不会耗尽事件,并且它们会正确地冒泡。请看这里
<Button x:Name="btnBackward" Content="Backward"
PreviewMouseDown="btnBackward_MouseDown"
PreviewMouseUp="btnBackward_MouseReleased"/>