弹出式按钮在SecondaryCommands后面

因此,我想做的是提示用户是否要更改为其他视频,以进行二次确认。所以我添加了弹出按钮。但是,弹出窗口出现在SecondaryCommands AppBarButton的后面。有没有办法摆在前面?

这是我的代码:

<CommandBar.SecondaryCommands>
            <AppBarButton Name="AddImage" Label="Add Image" Click="AddImage_Click" />
            <AppBarButton Name="AddVideo" Label="Add Video" Click="AddVideo_Click"/>
            <AppBarButton Name="Browse" Label="Browse Videos" >
                <Button.Flyout>
                    <Flyout>
                        <StackPanel>
                            <TextBlock Text="You want to change to another video?"/>
                            <Button Content="Browse video" Click="Browse_Click"/>
                        </StackPanel>
                    </Flyout>
                </Button.Flyout>
            </AppBarButton>
        </CommandBar.SecondaryCommands>
        <CommandBar.Content>
            <TextBlock Name="Status" Text="Video: HoloLens.mp4" Margin="15"/>
        </CommandBar.Content>
    </CommandBar>
</Page.BottomAppBar>

这就是发生的事情:

弹出式按钮在SecondaryCommands后面

fangsufang 回答:弹出式按钮在SecondaryCommands后面

对于元素显示,可以完成。但不使用Flyout

我希望您注意到,当您为Flyout中的AppBarButton设置SecondaryCommands属性时,按钮上有一个向右箭头。这是一个非常清楚的指示,表示secondary-secondary菜单。

很明显,UWP希望获得MenuFlyout或其他可以显示多层目录的弹出层,而不是包含面板的布局。

如果使用MenuFlyout,则会发现它显示在顶部。

但是,如果您坚持自己的设计,那么有很多方法可以做到。当您的应用程序的最低版本为1809及更高版本时,可以使用CommandBarFlyout的{​​{1}}属性来达到目的。

AppBarElementContainer

在这里显示(按住不放,不点击):

9a953131-ac86-4546-8874-7b89f75e8f73.png

但是正如@lindexi所说,这违反了UWP设计。尽管希望它具有视觉响应性,但不建议这样做。

我还建议您使用<AppBarButton Name="Browse" Label="Browse Videos"> <AppBarButton.Flyout> <CommandBarFlyout Placement="Top"> <CommandBarFlyout.SecondaryCommands> <AppBarElementContainer> <StackPanel Padding="15"> <TextBlock Text="You want to change to another video?"/> <Button Content="Browse video"/> </StackPanel> </AppBarElementContainer> </CommandBarFlyout.SecondaryCommands> </CommandBarFlyout> </AppBarButton.Flyout> </AppBarButton> ,或使用ContentDialog中的新控件TeachingTip,它看起来更符合您的期望。

最诚挚的问候。

本文链接:https://www.f2er.com/3065392.html

大家都在问