Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klassen ContextMenu representerar det element som exponerar funktioner med hjälp av en kontextspecifik Menu. Vanligtvis exponerar en användare ContextMenu i användargränssnittet (UI) genom att högerklicka på musknappen. Det här avsnittet beskriver elementet ContextMenu och innehåller exempel på hur du använder det i XAML (Extensible Application Markup Language) och kod.
ContextMenu-kontroll
A ContextMenu är kopplat till en specifik kontroll. Med ContextMenu elementet kan du presentera användare med en lista över objekt som anger kommandon eller alternativ som är associerade med en viss kontroll, till exempel en Button. Användarna högerklickar på kontrollen för att få menyn att visas. När du klickar på en MenuItem öppnas vanligtvis en undermeny eller gör att ett program utför ett kommando.
Skapa ContextMenus
I följande exempel visas hur du skapar en ContextMenu med undermenyer. Kontrollerna ContextMenu är kopplade till knappkontroller.
<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)
Tillämpa formatmallar på en kontextmeny
Genom att använda en kontroll Stylekan du dramatiskt ändra utseendet och beteendet för en ContextMenu utan att skriva en anpassad kontroll. Förutom att ange visuella egenskaper kan du även använda formatmallar för delar av en kontroll. Du kan till exempel ändra beteendet för delar av kontrollen med hjälp av egenskaper, eller så kan du lägga till delar i eller ändra layouten för en ContextMenu. I följande exempel visas flera sätt att lägga till formatmallar i ContextMenu kontroller.
Det första exemplet definierar ett format med namnet SimpleSysResources, som visar hur du använder de aktuella systeminställningarna i din stil. Exemplet tilldelar MenuHighlightBrushKey som Background färg och MenuTextBrushKey som Foreground färg på ContextMenu.
<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>
I följande exempel används -elementet Trigger för att ändra utseendet på ett Menu som svar på händelser som genereras på ContextMenu. När en användare flyttar musen över menyn ändras utseendet på objekten ContextMenu .
<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>
Se även
.NET Desktop feedback