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

时间:2016-07-22 01:21:03

标签: uwp uwp-xaml

下面的代码很愚蠢,但它代表了我想要理解的概念。有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>

2 个答案:

答案 0 :(得分:0)

我认为如果您指定按钮的正确顺序,通过首先定义底部按钮或设置合适的 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>

作为旁注 - 将按钮放在另一个上可能不是一个好习惯。

答案 1 :(得分:0)

最简单的理解方法是

<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"/>

上面的代码就像堆栈一样工作,所以当你添加顶部按钮时,它首先在屏幕上呈现,然后再添加到底部按钮,所以后来渲染的那个按钮将始终位于顶部,并且会被点击,只是更改步骤并在顶部呈现您想要的按钮。