如何弹出按钮不会阻止其他任何单击

时间:2018-10-18 11:54:13

标签: xaml uwp flyout

我正在用c#和xaml进行UWP项目。

当您单击弹出窗口的上方时,弹出窗口将关闭,但同时也防止其他任何事件被单击。

是否有一种方法可以使弹出按钮不吞下click / pointerpressed事件? 这样,例如,在弹出按钮打开时单击按钮将同时关闭弹出按钮并执行按钮单击。

我试图制作派生的弹出类,目的是重写OnPointerPressed函数(就像您可以使用按钮一样),因此我可以将Handled标志设置为false,但似乎没有OnPointerPressed函数或任何类似的东西。

1 个答案:

答案 0 :(得分:1)

  

如何弹出按钮不会阻止其他操作

Light dismiss behavior派生。您可以通过将按钮指定为弹出按钮的输入传递元素来更改此行为。

  

弹出按钮将由于上述的灯光关闭动作而关闭,并且还将轻击事件传递到其指定的OverlayInputPassThroughElement。考虑采用此行为以加快功能相似项目上的用户交互。如果您的应用程序有一个收藏夹集合,并且该集合中的每个项目都包含一个附加弹出按钮,则可以合理预期用户可能希望快速连续地与多个弹出窗口进行交互。

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