我正在用c#和xaml进行UWP项目。
当您单击弹出窗口的上方时,弹出窗口将关闭,但同时也防止其他任何事件被单击。
是否有一种方法可以使弹出按钮不吞下click / pointerpressed事件? 这样,例如,在弹出按钮打开时单击按钮将同时关闭弹出按钮并执行按钮单击。
我试图制作派生的弹出类,目的是重写OnPointerPressed函数(就像您可以使用按钮一样),因此我可以将Handled标志设置为false,但似乎没有OnPointerPressed函数或任何类似的东西。
答案 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>