使用BottomAppBar显示弹出窗口

Pam*_*692 9 c# xaml windows-runtime windows-phone-8.1 win-universal-app

当我按下BottomAppBar中的AppBarToggleButton时,我正试图显示一个简单的Flyout(带有信息内容),但我的解决方案不起作用.:(

这是我的代码:

<Page.BottomAppBar>
        <CommandBar>
            <AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="" Icon="List">
                <FlyoutBase.AttachedFlyout>
                    <Flyout>
                        <TextBlock Text="Informations here..."/>
                    </Flyout>
                </FlyoutBase.AttachedFlyout>
            </AppBarToggleButton>
        </CommandBar>
</Page.BottomAppBar>
Run Code Online (Sandbox Code Playgroud)

什么都没有出现..任何人都可以帮助我展示这个flayout?非常感谢,对不起我的英语.:)

PAME

Rom*_*asz 12

在MSDN上清楚地描述一切(在那里也有一个非常好的例子):

什么都没有出现,因为Flyouts仅针对按钮自动打开(并且AppBarToggleButton不是从Button类派生的):

当用户单击按钮时,附加到按钮的弹出按钮会自动打开.您无需处理任何事件即可打开弹出按钮.(这包括从Button派生的控件,如AppBarButton

当然你可以添加一个Flyout,FrameworkElement但你必须手动打开它:

您可以使用FlyoutBase.AttachedFlyout附加属性将Flyout控件附加到任何FrameworkElement对象.如果这样做,则必须响应FrameworkElement上的交互,例如Tapped事件,并在代码中打开Flyout.

在XAML中 - Flyout在Resources中定义您的并将其附加到按钮:

<Page.Resources>
    <Flyout x:Key="myFlyout" Placement="Top">
        <TextBlock Text="Informations here..."/>
    </Flyout>
</Page.Resources>
<Page.BottomAppBar>
    <CommandBar>
        <AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="First" Icon="List"
                            FlyoutBase.AttachedFlyout="{StaticResource myFlyout}"
                            Click="AppBarToggleButton_Click"/>                
    </CommandBar>
</Page.BottomAppBar>
Run Code Online (Sandbox Code Playgroud)

代码背后的事件:

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
Run Code Online (Sandbox Code Playgroud)