如何使弹出窗口不阻止单击其他任何内容

How to make a flyout not prevent clicking anything else

我正在使用 C# 和 xaml 开发一个 UWP 项目。

当您在弹出窗口外单击时,弹出窗口会关闭,但它也会阻止单击其他任何内容。

有没有办法让弹出窗口不吞下 click/pointerpressed 事件? 因此,例如,在弹出窗口打开时单击按钮将关闭弹出窗口并执行按钮单击。

我尝试制作派生的浮出控件 class,目的是覆盖 OnPointerPressed 函数(就像您可以对按钮所做的那样),因此我可以将 Handled 标志设置为 false,但它似乎没有拥有 OnPointerPressed 功能或类似功能。

How to make a flyout not prevent clicking anything else

源自 Light dismiss behavior。您可以通过将按钮指定为弹出按钮的输入直通元素来更改此行为。

The flyout will close as a result of the light dismiss actions described above and will also pass the tap event to its designated OverlayInputPassThroughElement. Consider adopting this behavior to speed up user interactions on functionally similar items. If your app has a favorites collection and each item in the collection includes an attached flyout, it's reasonable to expect that users may want to interact with multiple flyouts in rapid succession.

<Page.Resources>
    <Flyout x:Name="TravelFlyout" x:Key="TravelFlyout"
            OverlayInputPassThroughElement="{x:Bind FavoritesBar}">
        <StackPanel>
            <HyperlinkButton Content="Washington Trails Association"/>
            <HyperlinkButton Content="Washington Cascades - Go Northwest! A Travel Guide"/>
        </StackPanel>
    </Flyout>
</Page.Resources>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StackPanel x:Name="FavoritesBar" Orientation="Horizontal">
        <HyperlinkButton x:Name="PageLinkBtn">Bing</HyperlinkButton>
        <Button x:Name="Folder1" Content="Travel" Flyout="{StaticResource TravelFlyout}"/>
        <Button x:Name="Folder2" Content="Entertainment" Click="Folder2_Click"/>
    </StackPanel>
</Grid>