Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ContextMenu Klasse stellt das Element dar, das Funktionen mithilfe eines kontextspezifischen MenuElements verfügbar macht. In der Regel macht ein Benutzer das ContextMenu in der Benutzeroberfläche sichtbar, indem er mit der rechten Maustaste klickt. In diesem Thema wird das ContextMenu Element vorgestellt und Beispiele für die Verwendung in Extensible Application Markup Language (XAML) und Code bereitgestellt.
Kontextmenü-Steuerelement
A ContextMenu ist an ein bestimmtes Steuerelement angebunden. Mit dem ContextMenu Element können Sie Benutzern eine Liste von Elementen präsentieren, die Befehle oder Optionen angeben, die einem bestimmten Steuerelement zugeordnet sind, z. B. ein Button. Benutzer klicken mit der rechten Maustaste auf das Steuerelement, um das Menü anzuzeigen. Normalerweise öffnet das Klicken auf ein MenuItem Untermenü oder bewirkt, dass eine Anwendung einen Befehl durchführt.
Erstellen von Kontextmenüs
Die folgenden Beispiele zeigen, wie Sie ein ContextMenu mit Untermenüs erstellen. Die ContextMenu Steuerelemente sind an Schaltflächensteuerelemente angefügt.
<Button Name="cmButton" Height="30">
Button with Context Menu
<Button.ContextMenu>
<ContextMenu Name="cm" Opened="OnOpened" Closed="OnClosed" StaysOpen="true">
<MenuItem Header="File"/>
<MenuItem Header="Save"/>
<MenuItem Header="SaveAs"/>
<MenuItem Header="Recent Files">
<MenuItem Header="ReadMe.txt"/>
<MenuItem Header="Schedule.xls"/>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>
btn = new Button();
btn.Content = "Created with C#";
contextmenu = new ContextMenu();
btn.ContextMenu = contextmenu;
mi = new MenuItem();
mi.Header = "File";
mia = new MenuItem();
mia.Header = "New";
mi.Items.Add(mia);
mib = new MenuItem();
mib.Header = "Open";
mi.Items.Add(mib);
mib1 = new MenuItem();
mib1.Header = "Recently Opened";
mib.Items.Add(mib1);
mib1a = new MenuItem();
mib1a.Header = "Text.xaml";
mib1.Items.Add(mib1a);
contextmenu.Items.Add(mi);
cv2.Children.Add(btn);
Dim btn As New Button()
Dim contextmenu As New ContextMenu()
Dim mi As New MenuItem()
Dim mia As New MenuItem()
btn.Background = Brushes.Red
btn.Height = 30
btn.Content = "Created with Visual Basic."
mi.Header = ("Item 1")
contextmenu.Items.Add(mi)
mia.Header = ("Item 2")
contextmenu.Items.Add(mia)
btn.ContextMenu = (contextmenu)
cv2.Children.Add(btn)
Anwenden von Stilen auf ein Kontextmenü
Mithilfe eines Steuerelements Stylekönnen Sie das Aussehen und Verhalten eines Steuerelements ContextMenu erheblich ändern, ohne ein benutzerdefiniertes Steuerelement zu schreiben. Zusätzlich zum Festlegen visueller Merkmale können Sie auch Stile auf Teile eines Steuerelements anwenden. Sie können z. B. das Verhalten von Teilen des Steuerelements mithilfe von Eigenschaften ändern, oder Sie können Teile hinzufügen oder das Layout eines Steuerelements ändern.ContextMenu Die folgenden Beispiele zeigen verschiedene Möglichkeiten zum Hinzufügen von Formatvorlagen zu ContextMenu Steuerelementen.
Im ersten Beispiel wird eine Formatvorlage definiert SimpleSysResources
, die zeigt, wie die aktuellen Systemeinstellungen in Ihrer Formatvorlage verwendet werden. Das Beispiel weist MenuHighlightBrushKey als Background Farbe und MenuTextBrushKey als Foreground Farbe des ContextMenu zu.
<Style x:Key="SimpleSysResources" TargetType="{x:Type MenuItem}">
<Setter Property = "Background" Value=
"{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}"/>
<Setter Property = "Foreground" Value=
"{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
</Style>
Im folgenden Beispiel wird das Element Trigger verwendet, um die Darstellung einer Menu als Reaktion auf Ereignisse zu ändern, die auf dem ContextMenu auftreten. Wenn ein Benutzer die Maus über das Menü bewegt, ändert sich die Darstellung der ContextMenu Elemente.
<Style x:Key="Triggers" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="true">
<Setter Property = "FontSize" Value="16"/>
<Setter Property = "FontStyle" Value="Italic"/>
<Setter Property = "Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
Siehe auch
.NET Desktop feedback