c# – WPF – Canvas_MouseLeftButtonDown事件
发布时间:2020-12-16 01:39:39 所属栏目:百科 来源:网络整理
导读:问候 我昨天开始使用WPF进行开发并遇到了一些问题.我发现Canvas相当于WinForms中的Panel.但是我遇到了“点击”事件的一些困难. MouseLeftButtonDown事件.如果它是否相关,则此Image和Canvasses位于UserControl中 上面的图片基本上就是我遇到的困难.您看到的3
问候
我昨天开始使用WPF进行开发并遇到了一些问题.我发现Canvas相当于WinForms中的Panel.但是我遇到了“点击”事件的一些困难. MouseLeftButtonDown事件.如果它是否相关,则此Image和Canvasses位于UserControl中 上面的图片基本上就是我遇到的困难.您看到的3张图片是一张图片.你看到的方块都是不同的画布.根据点击的画布,我希望发生不同的事情. 目前我有以下代码: <Grid> <Canvas Name="canvasTerran" Height="27" Width="26" Margin="88,106,134,106" MouseLeftButtonDown="canvasTerran_MouseLeftButtonDown" /> <Canvas Name="canvasZerg" Height="27" Width="26" Margin="117,107,105,107" MouseLeftButtonDown="canvasZerg_MouseLeftButtonDown" /> <Canvas Name="canvasProtoss" Height="27" Margin="145,88,107" MouseLeftButtonDown="canvasProtoss_MouseLeftButtonDown" /> <Image Name="imageRaces" Height="27" Width="73" Stretch="Fill" Source="pack://application:,/Images/Races/Races.png" /> </Grid> 当我运行应用程序(用户控件在主窗口中)时,我点击画布应该没有任何反应.我正试图解雇的事件: private void canvasTerran_MouseLeftButtonDown(object sender,MouseButtonEventArgs e) { MessageBox.Show("lolterran","lol"); // image on main window // .Source = new BitmapImage(new Uri("pack://application:,/" + Constants.RACESPATH + "T.png")); } 我真的没有看到我在这里做错了所以任何建议都会受到欢迎.正如我所说,我是WPF的新手,所以如果你认为有一种比我目前更好的方法,请说出来! 提前致谢. 解决方法
实际问题是画布是透明的.因此,所有事件都不会在画布处停止,但会为其父元素生成它们.
例如,如果为画布设置Background = White或Red,则应该获得MouseLeftButtonDown. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |