我已经看到这个link来解决我的问题,但它对我不起作用,因为我的布局中有两个网格,我需要其中一个获得鼠标事件而另一个没有。第一个网格就像一个带按钮的标题栏,我可以移动窗口。有没有人有任何解决方案或建议?
我的Xaml
<UserControl ...>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
....
</Grid>
<Grid Grid.Row="1"
behaviors:PopupBehavior.IsPopupEventTransparent="True">
.....
</Grid>
</Grid></UserControl>
答案 0 :(得分:1)
如果要忽略任何WPF UI元素上的鼠标输入,您可以将其IsHitTestVisible
属性设置为false
。
示例:
<Grid>
<Button Click="OnButtonClick" Content="The Button" />
<Border Background="Red" Opacity="0.5" IsHitTestVisible="False" />
</Grid>
红色半透明边框将显示在按钮前面。仍然,该按钮将接收点击事件,因为边界禁用了命中测试。
进一步阅读:MSDN
答案 1 :(得分:1)
如果您在根元素上将IsHitTestVisible
属性设置为false
,则无法在其任何子元素上将其设置为true
。正如你所看到的,这个问题永远得不到答案How can you set IsHitTestVisible to True on a child of something where it's set to false?。
因此,您可以忘记使用HitTestVisible子进行传递UserControl。