如何断言重叠按钮的点击优先级?

How to assert click precedence of overlapping buttons?

下面这段代码很傻,但它代表了我试图理解的一个概念。有 2 个按钮重叠。当我点击顶部按钮时,只会触发底部按钮的点击事件。有没有办法强制顶部按钮点击注册而不是重叠区域的底部按钮?

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Button x:Name="TopButton" Click="TopButton_Click" Content="Top Button" Width="100" Margin="0,0,0,0" HorizontalAlignment="Left"/>
    <Button x:Name="BottomButton" Click="BottomButton_Click" Content="I am the Bottom Button I am very wide" Width="500" HorizontalAlignment="Left" Margin="0,0,0,0"/>
</Grid>

我认为如果您通过首先定义底部按钮或设置合适的 Canvas.ZIndex 来指定正确的按钮顺序,它应该会起作用。正如我认为最上面的按钮应该触发(最大的 ZIndex),并且我已经尝试过这应该有效:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Button x:Name="TopButton" Canvas.ZIndex="1" Click="TopButton_Click" Content="Top Button" Width="100" Margin="0,0,0,0" HorizontalAlignment="Left"/>
    <Button x:Name="BottomButton" Canvas.ZIndex="0" Click="BottomButton_Click" Content="I am the Bottom Button I am very wide" Width="500" HorizontalAlignment="Left" Margin="0,0,0,0"/>
</Grid>

附带说明 - 将按钮一个放在另一个上可能不是一个好习惯。

最容易理解的方法是

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button x:Name="TopButton" Click="TopButton_Click" Content="Top Button" Width="100" Margin="0,0,0,0" HorizontalAlignment="Left"/>
<Button x:Name="BottomButton" Click="BottomButton_Click" Content="I am the Bottom Button I am very wide" Width="500" HorizontalAlignment="Left" Margin="0,0,0,0"/>

上面的代码将像一个堆栈一样工作,所以当你添加顶部按钮时,它首先在屏幕上呈现,然后是底部按钮,所以总是稍后呈现的那个将在顶部并被点击,只需更改步骤并将您想要的按钮呈现在顶部即可。