让后台捕获 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>
我有一个半透明背景的网格,我希望用户能够点击背景来关闭弹出窗口。
现在我有了这个 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>