C# 弹出式按钮';s";“轻率解雇”;导致需要2个分接头才能打开下一个弹出按钮
我有两个按钮,点击时显示。我将以与中所示相同的方式显示它们: 我的问题是,如果按钮1的弹出按钮打开,屏幕上的下一次点击将关闭弹出按钮。这很好,但是如果下一次点击恰好在按钮2上,我希望触发按钮的点击事件并打开其弹出按钮。相反,该按钮根本不注册点击,并关闭按钮1的弹出按钮 这导致需要点击两次-一次关闭按钮1的弹出按钮,另一次显示按钮2的弹出按钮 换言之: 当前流量:C# 弹出式按钮';s";“轻率解雇”;导致需要2个分接头才能打开下一个弹出按钮,c#,xaml,win-universal-app,uwp,C#,Xaml,Win Universal App,Uwp,我有两个按钮,点击时显示。我将以与中所示相同的方式显示它们: 我的问题是,如果按钮1的弹出按钮打开,屏幕上的下一次点击将关闭弹出按钮。这很好,但是如果下一次点击恰好在按钮2上,我希望触发按钮的点击事件并打开其弹出按钮。相反,该按钮根本不注册点击,并关闭按钮1的弹出按钮 这导致需要点击两次-一次关闭按钮1的弹出按钮,另一次显示按钮2的弹出按钮 换言之: 当前流量: 轻触按钮1 按钮1的弹出按钮打开 点击按钮2 按钮1的弹出按钮关闭(按钮2,或页面记录点击) 点击按钮2 现在按钮2的弹出按钮打开 我
我不知道该怎么解决这个问题 以下是我在Microsoft文档中找到的内容: 当轻触解除时,此手势通常会被吸收,而不会传递到下面的UI。例如,如果在打开的弹出按钮后面有一个可见的按钮,则用户的第一次点击将取消弹出按钮,但不会激活此按钮。按下按钮需要第二次轻触 可以通过将按钮指定为弹出型按钮的输入传递元素来更改此行为。弹出按钮将因上述灯光熄灭操作而关闭,并将tap事件传递到其指定的OverlayinPuthThroughElement。考虑采用这种行为来加快用户在功能类似项目上的交互。如果你的应用程序有一个Favorites集合,并且集合中的每个项目都包含一个附加的弹出按钮,那么用户可能希望快速连续地与多个弹出按钮交互是合理的 [!注意]小心不要指定会导致破坏性操作的覆盖输入传递元素。用户已经习惯于不激活主用户界面的谨慎的轻动作。关闭、删除或类似破坏性按钮不应在灯光熄灭时激活,以避免意外和破坏性行为。 在下面的示例中,FavoritesBar内的所有三个按钮将在第一次点击时激活
<Page>
<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"/>
<RowDefinition Height="*"/>
</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>
<ScrollViewer Grid.Row="1">
<WebView x:Name="WebContent"/>
</ScrollViewer>
</Grid>
你找到解决办法了吗?我对菜单也有同样的问题,但作为上下文菜单使用。不,还没有解决方案。我可能会尝试用弹出窗口替换弹出框,看看是否可以更好地控制dismission.doc链接:
<Page>
<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"/>
<RowDefinition Height="*"/>
</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>
<ScrollViewer Grid.Row="1">
<WebView x:Name="WebContent"/>
</ScrollViewer>
</Grid>
private void Folder2_Click(object sender, RoutedEventArgs e){
Flyout flyout = new Flyout();
flyout.OverlayInputPassThroughElement = FavoritesBar;
flyout.ShowAt(sender as FrameworkElement);}