#

UWP: Popup Menü

 

In Windows Apps kann man als Menü Elemente entweder die UIElemente MenuFlyout und Flyout verwenden oder man kann Dialoge mit dem UIElement Popup erstellen.

MenuFlyout und Flyout sind einfach Menüs mit einem Text ohne Symbol

 

MenuFlyout kann man eigentlich nur als Text verwenden wobei Checked=true/false noch zusätlich möglich ist

Flyout kann man schon als Liste mit Text+Button+UIElemente verwenden. Aber als reine Liste

Popup Menüs sind komplett frei in der Gestaltung ähnlich eines Grid oder Page.

 

 

Das gezeigte Popup besteht aus einem Popup Tag in welches freies XAML definiert werden kann.

Hier das Grundprinzip

<Popup >

  <Grid >

    <Columns..>

    <Rows..>

      <TextBlock

      <Button Grid.Row="0" Grid.Column="1">

  </Grid>

</Popup>

 

 

 

XAML zum oberen Beispiel:

<Popup Grid.Column="4" Name="popup_Menu_Folder" Tapped="popup_Menu_Folder_Tapped" IsOpen="false"   >

<Grid Opacity="1" Background="Yellow" Width="200" Margin="-30,30,0,0">

    <Grid.ColumnDefinitions   >

        <ColumnDefinition />

        <ColumnDefinition  />

    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions >

        <RowDefinition />

        <RowDefinition />

        <RowDefinition />

        <RowDefinition />

    </Grid.RowDefinitions>

    <TextBlock Grid.Row="0" Grid.Column="0">Row 1</TextBlock>

    <Button Grid.Row="0" Grid.Column="1">

        <SymbolIcon Symbol="More"  />

    </Button>

    <TextBlock Grid.Row="1" Grid.Column="0">Row 2</TextBlock>

    <Button Grid.Row="1" Grid.Column="1">

        <SymbolIcon Symbol="More"  />

    </Button>

    <TextBlock Grid.Row="2" Grid.Column="0">Row 3</TextBlock>

    <Button Grid.Row="2" Grid.Column="1">

        <SymbolIcon Symbol="More"  />

    </Button>

    <TextBlock Grid.Row="3" Grid.Column="0">Row 4</TextBlock>

    <Button Grid.Row="3" Grid.Column="1">

        <SymbolIcon Symbol="More"  />

    </Button>

</Grid>

 

 

                    </Popup>

 

Popup öffnen und schliessen

 

Zum Anzeigen muss man einen eigenen kleinen C# Code in einem Button oder anderen Klick Element schreiben,

Welches mit dem Popup.IsOpen das Menü anzeigt und wieder schliesst

private void btnAlbumFolder_New_Click(object sender, RoutedEventArgs e)

        {

            if (popup_Menu_Folder.IsOpen == true ) popup_Menu_Folder.IsOpen = false ; else popup_Menu_Folder.IsOpen = true;

        }

 

 

 

 

Fazit:

Mit Popup Menüs kann man komplett frei gestaltete Menüs gestalten. Die einfachsten Menüs sind MenuFlyout.

Eine zwischenform sind die Flyouts, welche wie eine Menü-Liste mit freien XAML Unterelementen sind in Listenform

Mobile

.

yesmovies