wpf Button.MouseLeftButtonDown 根本不起作用
本文关键字:不起作用 MouseLeftButtonDown Button wpf | 更新日期: 2023-09-27 17:56:05
我试图学习MouseLeftButtonDown是如何工作的,但直到现在还没有秒。
当我点击按钮时,没有任何嘶吼。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel Name="sss">
<Button x:Name="b1" Height="213" MouseLeftButtonDown="sss_MouseDown"/>
</StackPanel>
</Grid>
</Window>
隐藏的代码是:
private void sss_MouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("3 ->>>>>" + ((Control)sender).Name);
}
尝试简单的PreviewMouseLeftButtonDown
事件
来自有关此事件的文档:
某些控件类可能具有鼠标按钮事件的固有类处理。鼠标左键按下事件是控件中最有可能具有类处理的事件。类处理通常将基础 Mouse 类事件标记为已处理。将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。通常也不会引发附加到 UI 树中根冒泡方向的元素的任何其他类或实例处理程序。
简而言之:按钮可能正在处理此事件,以便生成自己的MouseDown
和MouseClick
事件。由于按钮将事件标记为已处理,因此不会调用你自己的处理程序。请尝试改用更标准的事件之一。
该页面还列出了一些解决方法,但通常我会避开这些解决方法并使用更标准的解决方案。
我遇到了同样的问题,但改用了PreviewMouseLeftButtonDown事件。这奏效了。