Frage

Ich versuche, ein einfaches Flyout (mit Informationsinhalt) anzuzeigen, wenn ein AppBarToggleButton in BottomAppBar gedrückt wird, aber meine Lösung funktioniert nicht.:(

Das ist mein 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>

Es erscheint nichts..Kann mir jemand helfen, dieses Flayout zu zeigen?Vielen Dank und Entschuldigung für meine englische Sprache.:) :)

Pame

War es hilfreich?

Lösung

Alles ist ganz klar beschrieben bei MSDN (Dort gibt es auch ein sehr gutes Beispiel):

Nichts erscheint, weil Flyouts öffnet sich automatisch nur für Tasten (und AppBarToggleButton leitet sich nicht ab Button Klasse):

Ein an eine Schaltfläche angehängtes Flyout wird automatisch geöffnet, wenn der Benutzer auf die Schaltfläche klickt.Sie müssen keine Ereignisse verarbeiten, um das Flyout zu öffnen.(Dazu gehören von Button abgeleitete Steuerelemente wie AppBarButton

Natürlich können Sie eine hinzufügen Flyout zu irgendjemandem FrameworkElement aber Sie müssen es manuell öffnen:

Sie können ein Flyout-Steuerelement an jedes FrameworkElement-Objekt anhängen, indem Sie die angefügte Eigenschaft FlyoutBase.AttachedFlyout verwenden.Wenn Sie dies tun, müssen Sie auf eine Interaktion am FrameworkElement reagieren, beispielsweise auf das Tapped-Ereignis, und das Flyout in Ihrem Code öffnen.

Definieren Sie in XAML Ihre Flyout in Ressourcen und hängen Sie es an die Schaltfläche an:

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

Und Ereignis im Code dahinter:

private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);  
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top