Question

J'essaie d'afficher un simple Flyout (avec un contenu informatif) lorsqu'un AppBarToggleButton dans BottomAppBar est enfoncé, mais ma solution ne fonctionne pas.:(

Voici mon code :

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

Rien n'apparaît..Quelqu'un peut-il m'aider à montrer cet affaissement ?Merci beaucoup et désolé pour ma langue anglaise.:)

Pamé

Était-ce utile?

La solution

Tout est assez clairement décrit chez MSDN (il y a aussi un très bon exemple là-bas) :

Rien n'apparaît, car Icônes volantes s'ouvre automatiquement uniquement pour les boutons (et AppBarToggleButton ne dérive pas de Button classe):

Un menu déroulant attaché à un bouton s'ouvre automatiquement lorsque l'utilisateur clique sur le bouton.Vous n'avez pas besoin de gérer d'événements pour ouvrir le menu déroulant.(Cela inclut les contrôles dérivés de Button, comme AppBarButton

Bien sûr, vous pouvez ajouter un Flyout à n'importe qui FrameworkElement mais vous devrez l'ouvrir manuellement :

Vous pouvez attacher un contrôle Flyout à n’importe quel objet FrameworkElement à l’aide de la propriété attachée FlyoutBase.AttachedFlyout.Si vous le faites, vous devez répondre à une interaction sur FrameworkElement, telle que l'événement Tapped, et ouvrir le Flyout dans votre code.

En XAML - définissez votre Flyout dans Ressources et attachez-le au bouton :

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

Et événement dans le code derrière :

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top