我Grid
超过Button
(他们都直接在另一个网格上,但Grid
是"以上")。我需要订阅Grid
中的某些活动,但仍然可以点击Button
。我将Background
的{{1}}设置为Grid
,以使其引发事件,但Transparent
无法点击。有没有办法离开Button
,但是点击也可以转到下一个元素?
答案 0 :(得分:2)
我先看看你是否可以把按钮放在网格上方。你可以在XAML中移动它 - XAML中的元素声明越往下,z顺序越高。
如果你肯定不能这样做,你可以覆盖UI元素MouseUp或MouseDown方法并控制处理属性的设置,以允许树中的后续元素获取点击。
如果您只想将此限制为特定控件,则可以检查" OriginalSource" property(因为所有这些事件args都继承自RoutedEventArgs)以查看点击源是什么并采取相应行动:
protected override void OnMouseDown(MouseButtonEventArgs e)
{
var grid = e.OriginalSource as Grid;
if (grid != null && grid.Tag = "yourgridname") e.Handled = false;
}