让后台捕获 Tapped 事件?

Let background catch Tapped events?

我有一个半透明背景的网格,我希望用户能够点击背景来关闭弹出窗口。

现在我有了这个 XAML:

<Grid
    Tapped="Close_Tapped">
    <Grid.Background>
        <SolidColorBrush Color="Black" Opacity=".75"/>
    </Grid.Background>
    <!-- Inner border -->
    <Border
        Background="White"
        CornerRadius="5">
        <!-- Other items -->
    </Border>
</Grid>

Tapped事件应该只应用于Grid背景,但显然这会应用于整个网格。

让这个 Tapped 事件只在后台运行有什么想法吗?

您可以检查 Close_Tapped 事件处理程序中的 e.OriginalSource 是否为 Grid 或将另一个元素添加到 Grid,在其他元素下方,这将成为你的背景,然后将 Tapped 处理程序移到那里

<Grid>
    <Border Tapped="Close_Tapped">
        <Border.Background>
            <SolidColorBrush Color="Black" Opacity=".75"/>
        </Border.Background>
    </Border>
    <!-- Inner border -->
    <Border
        Background="White"
        CornerRadius="5">
        <!-- Other items -->
    </Border>
</Grid>