ContextMenu Genel Bakışı

sınıfı, ContextMenu bağlama özgü Menubir kullanarak işlevselliği kullanıma sunan öğesini temsil eder. Genellikle, bir kullanıcı fare düğmesine sağ tıklayarak kullanıcı arabiriminde (UI) öğesini kullanıma sunar ContextMenu . Bu konu, öğesini tanıtır ContextMenu ve Genişletilebilir Uygulama İşaretlemeyi Dili (XAML) ve kodda nasıl kullanacağınıza ilişkin örnekler sağlar.

ContextMenu Denetimi

, ContextMenu belirli bir denetime eklenir. ContextMenu öğesi, kullanıcılara belirli bir denetimle ilişkili komutları veya seçenekleri belirten öğelerin listesini (örneğin, bir Button) sunmanızı sağlar. Kullanıcılar, menüyü görüntülemek için denetime sağ tıklar. Genellikle bir MenuItem öğesine tıklanması bir alt menüyü açar veya bir uygulamanın komut yürütmesine neden olur.

ContextMenus Oluşturma

Aşağıdaki örneklerde, alt menülerle nasıl oluşturulacağı ContextMenu gösterilmektedir. Denetimler ContextMenu düğme denetimlerine eklenir.

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

ContextMenu'ya Stil Uygulama

bir denetim Stylekullanarak, özel denetim yazmadan bir ContextMenu öğesinin görünümünü ve davranışını önemli ölçüde değiştirebilirsiniz. Görsel özellikleri ayarlamaya ek olarak, bir denetimin bölümlerine stiller de uygulayabilirsiniz. Örneğin, özellikleri kullanarak denetimin bölümlerinin davranışını değiştirebilir veya öğesine parça ekleyebilir veya düzenini ContextMenudeğiştirebilirsiniz. Aşağıdaki örneklerde denetimlere stil ContextMenu eklemenin çeşitli yolları gösterilmektedir.

İlk örnek, geçerli sistem ayarlarının stilinizde nasıl kullanılacağını gösteren adlı SimpleSysResourcesbir stil tanımlar. Örnek, renk olarak ve öğesinin Foreground rengi ContextMenuolarak atarMenuHighlightBrushKey.MenuTextBrushKeyBackground

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

Aşağıdaki örnek, Trigger üzerinde ContextMenutetiklenen olaylara yanıt olarak görünümünü Menu değiştirmek için öğesini kullanır. Kullanıcı fareyi menünün üzerine getirince öğelerin görünümü ContextMenu değişir.

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

Ayrıca bkz.