xaml - 弹出窗口中应用栏按钮的单击事件在 UWP 中不起作用

标签 xaml windows-10 uwp windows-10-universal uwp-xaml

我有一个命令栏,在应用栏按钮之一上我附加了一个可以正确显示的弹出按钮。该弹出窗口再次具有带有应用栏按钮的命令栏。问题是我想在这些按钮之一上再次打开弹出按钮,但这不起作用。请帮忙!

    <Page.Resources>
    <Flyout x:Key="SetBookmarkFlyout">
        <Grid Width="250" Height="250">
            <TextBlock Grid.Row="0">Name</TextBlock>
            <TextBox Grid.Row="1" x:Name="BookmarkName"></TextBox>
            <TextBlock Grid.Row="2">Create in</TextBlock>
            <ComboBox Grid.Row="3"></ComboBox>
        </Grid>
    </Flyout>
    <Flyout x:Key="SubMenuFlyout">
        <CommandBar Background="{ThemeResource     ApplicationPageBackgroundThemeBrush}" Height="250" >
            <AppBarButton Icon="Bookmarks" ToolTipService.ToolTip="Open Bookmarks"></AppBarButton>
            <AppBarButton x:Name="SetBookmark" Icon="Favorite" ToolTipService.ToolTip="Set Bookmark" Click="SetBookmark_Click" FlyoutBase.AttachedFlyout="{StaticResource SetBookmarkFlyout}" ></AppBarButton>
            <AppBarButton Icon="Page" ToolTipService.ToolTip="Recent Files"></AppBarButton>
        </CommandBar>
    </Flyout>
  </Page.Resources>

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Padding="0,0,0,-10" >

    <CommandBar x:Name="Commandbar" Height="70" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <AppBarButton Icon="Back" Label="" ToolTipService.ToolTip="Back" ></AppBarButton>
        <AppBarButton Icon="Forward" Label="" ToolTipService.ToolTip="Forward" ></AppBarButton>
        <AppBarButton x:Name="SpaceAppBtn"></AppBarButton>

        <AppBarButton Icon="Add" Label="" ToolTipService.ToolTip="Add Tab"></AppBarButton>
        <AppBarButton Icon="Favorite" Label="" ToolTipService.ToolTip="Favorites (Set Bookmark,open Bookmarks, and see recent files)" Click="AppBarButton_Click" FlyoutBase.AttachedFlyout="{StaticResource SubMenuFlyout}">
        </AppBarButton>
        <AppBarButton Icon="Find" Label="" ToolTipService.ToolTip="Search"></AppBarButton>


    </CommandBar>
    </Grid>

最佳答案

我已将您的浮出控件直接添加到示例中的按钮进行测试。

<AppBarButton x:Name="FavoriteButton" Icon="Favorite" Label="" ToolTipService.ToolTip="Favorites (Set Bookmark,open Bookmarks, and see recent files)" 
                 Click="AppBarButton_Click">
        <AppBarButton.Flyout>
            <Flyout>
               <CommandBar Background="{ThemeResource     ApplicationPageBackgroundThemeBrush}" Height="250" >
                   <AppBarButton Icon="Bookmarks" ToolTipService.ToolTip="Open Bookmarks"></AppBarButton>
                    <AppBarButton x:Name="SetBookmark" Icon="Favorite" ToolTipService.ToolTip="Set Bookmark"
                      Click="SetBookmark_Cick">                                
                    </AppBarButton>
                    <AppBarButton Icon="Page" ToolTipService.ToolTip="Recent Files"></AppBarButton>
                    </CommandBar>
            </Flyout>
        </AppBarButton.Flyout>
    </AppBarButton>

使用Popup而不是第二个Flyout。 在 CommandBar 之后添加

<CommandBar>...
</CommandBar>
<Popup x:Name="SetBookmarkPopup" HorizontalOffset="200" VerticalOffset="200">
    <Grid Width="250" Height="250">
        <TextBlock Grid.Row="0">Name</TextBlock>
        <TextBox Grid.Row="1" x:Name="BookmarkName"></TextBox>
        <TextBlock Grid.Row="2">Create in</TextBlock>
        <ComboBox Grid.Row="3"></ComboBox>
     </Grid>
</Popup>

并从您的 AppBarButton_Click 事件调用

private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
     FavoriteButton.Flyout.ShowAt(FavoriteButton);
}  

最后打开弹出窗口

private void SetBookmark_Cick(object sender, RoutedEventArgs e)
{
    SetBookmarkPopup.IsOpen = true;
}

希望有帮助

关于xaml - 弹出窗口中应用栏按钮的单击事件在 UWP 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455201/

相关文章:

c# - tabcontroller 中的两个选定选项卡

java - 如何解决Windows 10操作系统下Selenium连接不安全的问题?请帮助 SELENIUM firefox 测试自动化社区

vbscript - 在 Windows 10 上运行的系统上设置本地计算机名称和静态 IP 地址

c# - Windows 设备门户中的 ETW 消息为空

c# - 更改Windows Phone 通用应用程序中内容对话框按钮的样式

c# - 将 xaml 模板中的属性绑定(bind)到 viewmodel (RibbonTextBox)

python - 在 WIndows 10 中使用 pip 在 Virtualenv 中安装 Python 3.6.3?

c# - 微软广告错误

c# - UWP 应用程序中的高级 MVVM 场景 - 如何将模型类用于多个 View 模型?

WPF 触发器