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