概述防止在XAML / WPF中的button传递
在我的项目中,我有一个大容器和一个水龙头处理程序。 在这个容器里面,我也有一个button。 我的目标是处理背景容器上的所有水龙头,除非用户点击button。 不幸的是,当我点击button时,它触发button上的点击处理程序和容器的点击处理程序。
以下是一些示例XAML:
<GrID WIDth=\”250\” Height=\”250\” Fill=\”Red\” Tapped=\”Container_Tapped\”> <button Click=\”button_Clicked\”> <Rectangle WIDth=\”20\” Height=\”20\” Fill=\”Blue\” /> </button> </GrID>
有没有办法处理button上的龙头事件,以防止它冒泡到容器? 任何其他的想法?
如何将windows事件日志刷新到磁盘?
linux下键盘事件处理的内部工作
WaitForSingleEvent是否可以等待事件被重置?
用Win32 API编写应用程序事件信息
如何使用windows中的autoresetEvent移植到linux Interprocess事件
C#事件处理程序
信号处理器与事件处理程序
无法从/ dev / input / event获取鼠标移动事件*
是否有一个与eventfd相当的windows?
在WPF中的windows激活Alt-Tab问题
在您的Container_Tapped事件处理程序中,您可以检查RoutedEventArgs.OriginalSource属性 。 如果e.OriginalSource是你的按钮的后裔,什么也不做。
对于Visual.IsDescendantOf方法可能会有所帮助。
这里有一个动态的方法来做到这一点在Win RT中,而不需要知道按钮的确切名称(有用的,如果你有一堆的按钮来处理,如数据绑定!)
\’ Verify that the sender is not a button (or one of its children) If Not e.OriginalSource.Equals(sender) Then Dim parentObj = VisualTreeHelper.GetParent(e.OriginalSource) do while Not parentObj.Equals(sender) If TypeOf parentObj Is button Then Return parentObj = VisualTreeHelper.GetParent(parentObj) Loop End If
总结
以上是内存溢出为你收集整理的防止在XAML / WPF中的button传递全部内容,希望文章能够帮你解决防止在XAML / WPF中的button传递所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容