Aracılığıyla paylaş


ContextMenu'ya Genel Bakış

ContextMenu sınıfı, bağlama özgü bir Menukullanarak işlevselliği sağlayan öğeyi temsil eder. Genellikle, bir kullanıcı fare düğmesine sağ tıklatarak kullanıcı arayüzünde, ContextMenu öğesini ortaya çıkarır. Bu konu, ContextMenu öğesini tanıtır ve Genişletilebilir Uygulama Biçimlendirme Dili (XAML) ve kodda nasıl kullanılacağına ilişkin örnekler sağlar.

Bağlam Menüsü Kontrolü

Belirli bir kontrol birimine bir ContextMenu 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 tıklanması bir alt menü açar veya uygulamanın komut yürütmesine neden olur.

ContextMenus Oluşturma

Aşağıdaki örnekler, alt menülerle bir ContextMenu oluşturmayı göstermektedir. ContextMenu kontrolleri düğme kontrollerine bağlanır.

<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

Stylebir denetim kullanarak, özel denetim yazmadan bir ContextMenu 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 bir ContextMenuöğesine parça ekleyebilir veya düzenini değiştirebilirsiniz. Aşağıdaki örneklerde, ContextMenu denetimlere stil eklemenin çeşitli yolları gösterilmektedir.

İlk örnek, geçerli sistem ayarlarının stilinizde nasıl kullanılacağını gösteren SimpleSysResourcesadlı bir stil tanımlar. Örnek, MenuHighlightBrushKeyiçin Background'in rengi olarak MenuTextBrushKey ve Foreground'ün rengi olarak ContextMenu'yi atar.

<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 tetiklenen olaylara yanıt olarak bir Menu görünümünü değiştirmek için ContextMenu öğesini kullanır. Kullanıcı fareyi menünün üzerine getirince, ContextMenu öğelerinin görünümü 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 bakınız