Domanda

Sto cercando di mostrare un semplice riquadro a comparsa (con contenuto informativo) quando viene premuto un AppBarToggleButton all'interno di BottomAppBar, ma la mia soluzione non funziona.:(

Questo è il mio codice:

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

Non appare nulla..Qualcuno può aiutarmi a mostrare questo flagello?Grazie mille e scusa per la mia lingua inglese.:)

Pamé

È stato utile?

Soluzione

Tutto è descritto abbastanza chiaramente presso MSDN (c'è anche un ottimo esempio lì):

Non appare nulla, perché Flyout si apre automaticamente solo per i pulsanti (e AppBarToggleButton non deriva da Button classe):

Un riquadro a comparsa associato a un pulsante si apre automaticamente quando l'utente fa clic sul pulsante.Non è necessario gestire alcun evento per aprire il riquadro a comparsa.(Sono inclusi i controlli derivati ​​da Button, come AppBarButton

Ovviamente puoi aggiungere a Flyout a qualsiasi FrameworkElement ma dovrai aprirlo manualmente:

È possibile allegare un controllo Flyout a qualsiasi oggetto FrameworkElement utilizzando la proprietà associata FlyoutBase.AttachedFlyout.In tal caso, devi rispondere a un'interazione su FrameworkElement, ad esempio l'evento Tapped, e aprire il riquadro a comparsa nel codice.

In XAML: definisci il tuo Flyout in Risorse e allegarlo al pulsante:

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

Ed evento nel codice dietro:

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top