Pergunta

Eu estou a tentar mostrar um simples Submenu (com conteúdo informativo) quando um AppBarToggleButton dentro BottomAppBar é pressionado, mas a minha solução não funciona.:(

Este é o meu código:

<Page.BottomAppBar>
        <CommandBar>
            <AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="" Icon="List">
                <FlyoutBase.AttachedFlyout>
                    <Flyout>
                        <TextBlock Text="Informations here..."/>
                    </Flyout>
                </FlyoutBase.AttachedFlyout>
            </AppBarToggleButton>
        </CommandBar>
</Page.BottomAppBar>

Não aparece nada..Alguém pode me ajudar a mostrar isso flayout?Muito obrigado e desculpe pelo meu inglês.:)

Pame

Foi útil?

Solução

Tudo é claramente descrita no MSDN (há também um exemplo muito bom de lá):

Não aparece nada, porque Menus suspensos abrir automaticamente apenas para os botões (e AppBarToggleButton não derivar de Button classe):

Um submenu é anexado a um botão se abre automaticamente quando o usuário clica no botão.Você não precisa lidar com todos os eventos para abrir o submenu.(Isto inclui controles de derivados de Botão, como AppBarButton

É claro que você pode adicionar um Flyout para qualquer FrameworkElement mas você terá que abri-lo manualmente:

Você pode anexar um controle menu Suspenso para qualquer FrameworkElement objeto usando o FlyoutBase.AttachedFlyout propriedade anexada.Se você fizer isso, você deve responder a uma interação no FrameworkElement, tais como a Virada do evento, e abrir o Submenu seu código.

Em XAML - definir o seu Flyout em Recursos e anexá-lo para o botão:

<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>

E o evento em code-behind:

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top