ContextMenu – přehled

Třída ContextMenu představuje prvek, který zveřejňuje funkce pomocí kontextu specifické Menu. Uživatel obvykle zveřejňuje ContextMenu v uživatelském rozhraní (UI) kliknutím pravým tlačítkem myši tlačítko myši. Toto téma představuje ContextMenu prvek a obsahuje příklady, jak ho používat v jazyce XAML (Extensible Application Markup Language) a kódu.

Ovládací prvek ContextMenu

A ContextMenu je připojeno ke konkrétnímu ovládacímu prvku. Tento ContextMenu prvek umožňuje prezentovat uživatele se seznamem položek, které určují příkazy nebo možnosti přidružené k určitému ovládacímu prvku, například .Button Uživatelé kliknou pravým tlačítkem myši na ovládací prvek, aby se nabídka zobrazila. Kliknutím na MenuItem podnabídku obvykle otevřete podnabídku nebo způsobíte, že aplikace provede příkaz.

Vytváření contextMenus

Následující příklady ukazují, jak vytvořit podnabídku ContextMenu . Ovládací ContextMenu prvky jsou připojené k ovládacím prvkům tlačítek.

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

Použití stylů na contextMenu

Pomocí ovládacího prvku můžete výrazně změnit vzhled a chování ContextMenu ovládacího prvku Stylebez psaní vlastního ovládacího prvku. Kromě nastavení vlastností vizuálu můžete také použít styly na části ovládacího prvku. Můžete například změnit chování částí ovládacího prvku pomocí vlastností, nebo můžete přidat části nebo změnit rozložení , a ContextMenu. Následující příklady ukazují několik způsobů, jak přidat styly do ContextMenu ovládacích prvků.

První příklad definuje styl s názvem SimpleSysResources, který ukazuje, jak používat aktuální nastavení systému ve vašem stylu. Příklad přiřadí MenuHighlightBrushKey jako Background barvu a MenuTextBrushKey jako Foreground barvu 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>  

Následující příklad používá Trigger prvek ke změně vzhledu Menu v reakci na události, které jsou vyvolány na ContextMenu. Když uživatel přesune myš přes nabídku, vzhled ContextMenu položek se změní.

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

Viz také