مشاركة عبر


كيفية القيام بما يلي: إضافة معالج أحداث باستخدام رمز

يوضح هذا المثال كيفية معالج الحدث إلي عنصر باستخدام تعليمات برمجية.

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

مثال

المثال التالي يضيف Button جديد إلى صفحة موجودة تم تعريفها أولاً في XAML. ملف التعليمات برمجية الخلفية يقوم بتنفيذ أسلوب معالج الحدث ثم يضيف هذه الطريقة كمعالج حدث جديد على Button.

مثال #C يستخدم عامل += لتعيين معالج إلى حدث. هذا هو operaإلىr نفسه الذي يستخدم إلى تعيين معالج في وقت تشغيل اللغة العامة (CLR)حدث معالجة الطراز. Microsoft Visual Basicلا يدعم هذا المشغل كوسيلة لإضافة معالجات الأحداث. بدلاً من ذلك تتطلب إحدى التقنيتين:

  • استخدم أسلوب AddHandler مع العامل AddressOf للإشارة إلي تنفيذ معالج الحدث.

  • استخدم الكلمة الأساسية Handles كجزء من تعريف معالج الحدث. لم يتم إظهار هذه التقنية هنا; راجع Visual Basic و معالجة حدث WPF.

<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
Public Partial Class RoutedEventAddRemoveHandler
    Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim b2 As Button = New Button()
        b2.Content = "New Button"
        AddHandler b2.Click, AddressOf Onb2Click
        root.Children.Insert(root.Children.Count, b2)
        DockPanel.SetDock(b2, Dock.Top)
        text1.Text = "Now click the second button..."
        b1.IsEnabled = False
    End Sub
    Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        text1.Text = "New Button (b2) Was Clicked!!"
    End Sub
public partial class RoutedEventAddRemoveHandler {
    void MakeButton(object sender, RoutedEventArgs e)
    {
        Button b2 = new Button();
        b2.Content = "New Button";
        // Associate event handler to the button. You can remove the event 
        // handler using "-=" syntax rather than "+=".
        b2.Click  += new RoutedEventHandler(Onb2Click);
        root.Children.Insert(root.Children.Count, b2);
        DockPanel.SetDock(b2, Dock.Top);
        text1.Text = "Now click the second button...";
        b1.IsEnabled = false;
    }
    void Onb2Click(object sender, RoutedEventArgs e)
    {
        text1.Text = "New Button (b2) Was Clicked!!";
    }
ملاحظةملاحظة

إضافة معالج الحدث في الصفحة XAML المحللة في البداية أبسط بكثير.ضمن عنصر الكائن حيث تريد إضافة معالج الحدث قم بإضافة السمة التي تطابق اسم الحدث الذي تريد معالجته.قم بتعيين قيمة هذه السمة كاسم أسلوب معالج الحدث الذي قمت بتعريفه في ملف التعليمات البرمجية الخلفية لصفحة XAML.لمزيد من المعلومات، راجع نظرة عامة على XAML (WPF) أو نظرة عامة حول الأحداث الموجهة.

راجع أيضًا:

المبادئ

نظرة عامة حول الأحداث الموجهة

موارد أخرى

المواضيع الإجرائية للأحداث