مشاركة عبر


نظرة عامة حول قائمة السياق

فئة ContextMenu تمثل العنصر الذي يكشف الأداء الوظيفي عن طريق استخدام سياق مخصص Menu. بشكل عام، يكشف المستخدم ContextMenu في واجهة المستخدم (UI) بواسطة النقر فوق زر الماوس الأيمن. يُقدم هذا الموضوع عنصر ContextMenu و يوفر أمثلة عن كيفية استخدامه في Extensible Application Markup Language (XAML) و التعليمات البرمجية.

يشتمل هذا الموضوع على الأقسام التالية.

  • عنصر تحكم ContextMenu
  • إنشاء ContextMenus
  • تطبيق أنماط إلى ContextMenu
  • موضوعات ذات صلة

عنصر تحكم ContextMenu

يُرفق ContextMenu إلى عنصر تحكم محدد. عنصر ContextMenu يتيح لك تقديم المستخدمين بقائمة من العناصر التي تحدد الأوامر أو الخيارات المرتبطة بعنصر تحكم معين, على سبيل المثال، Button. يقوم المستخدمين بنقر زر الماوس الأيمن فوق عنصر التحكم لإظهار القائمة. بشكل عام، النقر فوق MenuItem يفتح قائمة فرعية أو يؤدي إلى أن التطبيق يقوم بتنفيذ أمر.

إنشاء ContextMenus

تبين الأمثلة التالية كيفية إنشاء ContextMenu بالقوائم الفرعية. عناصر تحكم ContextMenu متصلة بعناصر تحكم الزر.

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

تطبيق أنماط إلى ContextMenu

باستخدام عنصر تحكم Style، يمكنك بشكل كبير تغيير مظهر وسلوك ContextMenu دون كتابة عنصر تحكم مخصص. بالإضافة إلى إعداد الخصائص المرئية, يمكنك أيضاً تطبيق أنماط إلى أجزاء من عنصر تحكم. على سبيل المثال، يمكنك تغيير سلوك أجزاء من عنصر التحكم وذلك باستخدام الخصائص أو يمكنك إضافة أجزاء إلى أو تغيير التخطيط التابع إلى ContextMenu. تبين الأمثلة التالية العديد من الطرق لإضافة الأنماط إلى عناصر التحكم ContextMenu.

يعرّف المثال الأول نمط مسمى SimpleSysResources ، الذي يظهر كيفية استخدام إعدادات النظام الحالية في النمط الخاص بك. يعين المثال MenuHighlightBrushKey كلون Background و MenuTextBrushKey كلون Foreground من 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>

يستخدم المثال التالي عنصر Trigger لتغيير مظهر Menu استجابة إلى الأحداث التي تم تشغيلها على ContextMenu. عند تحريك المستخدم للماوس فوق القائمة، مظهر عناصر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>

راجع أيضًا:

المرجع

ContextMenu

Style

Menu

MenuItem

المبادئ

مثال قائمة السياق قالب التحكم

موارد أخرى

قائمة السياق

نموذج لمعرض عناصر تحكم WPF