كيفية القيام بما يلي: إضافة أمر إلى MenuItem

يوضح المثال التالي كيفية إعداد MenuItem كمصدر الأمر للأمر Paste. للحصول على المزيد من المعلومات على الأوامر، راجع نظرة عامة على الأوامر.

مثال

MenuItem, مثلButton وHyperlink ، يطبّقICommandSource. خاصيتين ذلك ICommandSourceexpose Commandو CommandTarget. Commandوهو الأمر الذي سيتم استدعاؤه وCommandTargetهو العنصر حيث حدث التوجيه ستبدأ عند استدعاء الأمر. إذا كان CommandTarget غير معرف، يتم إعداد العنصر ذو تركيز لوحة المفاتيح كـهدف.

فئة تطبيق ICommandSourceتعرف ماذا يعني الأمر إلى لاستدعائه. MenuItem and Button define the Click event as the means to invoke the command. إذا كان لا يمكن تنفيذ الأمر على CommandTarget معين، يتم تعطيل MenuItem . عندما يمكن تنفيذ الأمر على CommandTarget ، يتم تمكين MenuItem .

في هذا المثال يتم إنشاء MenuItem على Window الرئيسية من التطبيق. Commandخاصية هو تعيين إلى Pasteالأمر. CommandTargetهو غير معرفة فيMenuItem؛ وبالتالي، ستكون هدفا للأمر تشغيل العنصر الذي يحتوي تشغيل تركيز لوحة المفاتيح.

نظرًا لأن فئة TextBox توفر منطق أمر Paste ، CommandBinding غير مطلوب. إذا كان عنصر التحكم المعالج للأمر لا يوفر منطق تنفيذ الأمر ، CommandBinding مطلوب لربط ExecutedRoutedEventHandler و CanExecuteRoutedEventHandler مع RoutedCommand.

<Window x:Class="SDKSamples.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="MenuItemCommandTask"
    >
    <DockPanel>
      <Menu DockPanel.Dock="Top">
        <MenuItem Command="ApplicationCommands.Paste" Width="75" />
      </Menu>
      <TextBox BorderBrush="Black" BorderThickness="2" Margin="25"
               TextWrapping="Wrap">
        The MenuItem will not be enabled until
        this TextBox gets keyboard focus  
      </TextBox>
    </DockPanel>
</Window>

راجع أيضًا:

المرجع

ApplicationCommands

المبادئ

نظرة عامة على الأوامر

نظرة عامة حول المدخلات