网格背景是否一直为IsHitTestVisible =“ True”?

时间:2019-02-01 18:09:40

标签: uwp uwp-xaml

假设您有一个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>

1 个答案:

答案 0 :(得分:0)

好的,我找到了原因。

这整天让我发疯。令人讨厌的代码是:

<Grid Background="Transparent"

将背景设置为包括“透明”在内的任何内容,都可以防止点击传递到背面。