c# – Mousedown事件两次触发(WPF)
发布时间:2020-12-15 18:13:35 所属栏目:百科 来源:网络整理
导读:我目前正在尝试从简单网格上的图像捕获mousedown.我对事件发射没有任何问题,只是它发射了两次.而且因为点击它两次最终会有不同的状态(它会显示一个扩展的图像),直接进行第二次点击会导致问题. 我目前的代码如下: XAML Window x:Class="WpfApplication.MainW
我目前正在尝试从简单网格上的图像捕获mousedown.我对事件发射没有任何问题,只是它发射了两次.而且因为点击它两次最终会有不同的状态(它会显示一个扩展的图像),直接进行第二次点击会导致问题.
我目前的代码如下: XAML <Window x:Class="WpfApplication.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 Background="Transparent" x:Name="MainContent" MouseDown="Generic_MouseDown"> <Image Source="http://www.blogcdn.com/www.engadget.com/media/2011/05/welcome-kansas-city-google-high-speed-internet.jpg" Height="100" Width="100" MouseDown="Generic_MouseDown"/> </Grid> </Window> 码: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Generic_MouseDown(object sender,MouseButtonEventArgs e) { if (((FrameworkElement)e.Source).GetType() == typeof(System.Windows.Controls.Image)) { Console.Out.WriteLine("image clicked"); } else { Console.Out.WriteLine("grid clicked"); } } } 因此,当我点击图像时,它会两次发射mousedown. 谢谢! 解决方法private void Generic_MouseDown(object sender,MouseButtonEventArgs e) { if (((FrameworkElement)e.Source).GetType() == typeof(System.Windows.Controls.Image)) { Debug.WriteLine("image clicked"); e.Handled = true; } else { Debug.WriteLine("grid clicked"); } } 您需要将Handled属性设置为true. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |