Bagikan melalui


Gambaran Umum ContextMenu

Kelas ContextMenu mewakili elemen yang mengekspos fungsionalitas dengan menggunakan konteks khusus Menu. Biasanya, pengguna mengekspos ContextMenu di antarmuka pengguna (UI) dengan mengklik kanan tombol mouse. Topik ini memperkenalkan ContextMenu elemen dan memberikan contoh cara menggunakannya dalam Extensible Application Markup Language (XAML) dan kode.

Kontrol ContextMenu

ContextMenu dilampirkan ke kontrol tertentu. Elemen ini ContextMenu memungkinkan Anda menyajikan pengguna dengan daftar item yang menentukan perintah atau opsi yang terkait dengan kontrol tertentu, misalnya, Button. Pengguna mengklik kanan kontrol untuk membuat menu muncul. Biasanya, mengklik MenuItem membuka submenu atau menyebabkan aplikasi melakukan perintah.

Membuat ContextMenus

Contoh berikut menunjukkan cara membuat ContextMenu dengan submenu. ContextMenu Kontrol dilampirkan ke kontrol tombol.

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

Menerapkan Gaya ke ContextMenu

Dengan menggunakan kontrol Style, Anda dapat secara dramatis mengubah tampilan dan perilaku tanpa ContextMenu menulis kontrol kustom. Selain mengatur properti visual, Anda juga dapat menerapkan gaya ke bagian kontrol. Misalnya, Anda dapat mengubah perilaku bagian kontrol dengan menggunakan properti, atau Anda dapat menambahkan bagian ke, atau mengubah tata letak, .ContextMenu Contoh berikut menunjukkan beberapa cara untuk menambahkan gaya ke ContextMenu kontrol.

Contoh pertama menentukan gaya yang disebut SimpleSysResources, yang menunjukkan cara menggunakan pengaturan sistem saat ini dalam gaya Anda. Contoh menetapkan MenuHighlightBrushKey sebagai Background warna dan MenuTextBrushKey sebagai Foreground warna 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>  

Contoh berikut menggunakan Trigger elemen untuk mengubah tampilan sebagai Menu respons terhadap peristiwa yang dimunculkan pada ContextMenu. Saat pengguna memindahkan mouse ke menu, tampilan ContextMenu item berubah.

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

Baca juga