假设您有一个Grid控件填充了整个页面。
在该网格的顶部,您有另一个网格填充了整个页面。
假设两个网格都被划分为3x3网格,两个网格上的Row =“ 1” Col =“ 1”中都有一个Button。网格列和行的大小应确保两个按钮不重叠。
结果是无法单击底部的按钮,因为顶部的网格正在阻止它。
如果将顶部网格设置为IsHitTestVisible =“ False”,则现在可以按下底部的按钮,但是顶部按钮不能。
一直都是这种方式吗?我确定我以前曾经使用过这样的重叠网格,但仍然可以访问两个按钮。
(是的,我知道还有其他方法可以执行此操作,但是该场景只是通过这种方式提出问题。)
<Grid Background="Transparent" IsHitTestVisible="True"
Width="1200" Height="800">
<Grid.RowDefinitions>
<RowDefinition Height="100*"/>
<RowDefinition Height="100*"/>
<RowDefinition Height="600*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="400*"/>
<ColumnDefinition Width="400*"/>
<ColumnDefinition Width="400*"/>
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="1" Content="Bottom Grid" Background="Green"/>
</Grid>
<Grid Background="Transparent" IsHitTestVisible="True"
Width="1200" Height="800">
<Grid.RowDefinitions>
<RowDefinition Height="200*"/>
<RowDefinition Height="400*"/>
<RowDefinition Height="200*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200*"/>
<ColumnDefinition Width="400*"/>
<ColumnDefinition Width="600*"/>
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="1" Content="Top Grid" Background="Red"/>
</Grid>
答案 0 :(得分:0)
好的,我找到了原因。
这整天让我发疯。令人讨厌的代码是:
<Grid Background="Transparent"
将背景设置为包括“透明”在内的任何内容,都可以防止点击传递到背面。