‫مرحبًا بعودتك.
‫في هذا الفيديو ، أود التحدث عن بيانات الملكية ومحفزات الأحداث لأنها مهمة
‫جدًا عندما تريد تعديل الأشياء أثناء التنقل.
‫لذلك في هذه الحالة ، سوف أقوم بتعديل النص هنا.
‫لذلك عندما أتجاوزها ، أحوم فوقها ويغير النص لونه ومظهره بشكل عام.
‫ثم هذا.
‫مرحبا يا صديقي.
‫كما ترون ، أحجامها ، إنها في طريقها للأعلى.
‫لذلك فهي مثل الرسوم المتحركة هنا.
‫وبعد ذلك لدينا مربع الاختيار هذا هنا ، يوجد شخص ما هناك وهذا النص يقول لا ، وسأضغط
‫عليه ويقول ، بالطبع ، هناك شخص ما هناك ، لذا فهو أنا.
‫نعم ، يمكنني النقر عليها.
‫هذه هي الأشياء التي سنقوم بتغطيتها في هذا الفيديو وسنسمح لك ، حسنًا
‫، بجعل واجهة المستخدم الخاصة بك بشكل عام جيدة جدًا لأنها يمكن ضبطها أثناء التنقل ويمكن أن توفر
‫تجربة مستخدم محسنة أو إنشاء تجربة مستخدم محسنة.
‫لذلك دعونا نمضي قدمًا وننشئ مشروعًا جديدًا هنا.
‫وسأطلق على WPA 14 C ، وهي بيانات الملكية ومحفزات الأحداث.
‫ما كان لدي كان عبارة عن مزيج من الشبكات وألواح المكدس.
‫لذلك سأبدأ بلوحة المكدس.
‫لوحة المكدس من هذا القبيل.
‫وداخل لوحة Stack ، لدي شبكة.
‫وهناك لدي كتلة نصية تقول شيئًا مثل Text Hello ، أو العالم المحبوب أو العالم المحبوب.
‫وبعد ذلك لدي حجم الخط.
‫لذا سأقوم بضبط ذلك على ، لنقل 32.
‫اريد ان يكون هذا المركز.
‫لذلك سأقول مركزًا وأيضًا رأسيًا يجب أن يتم توسيطه.
‫لذلك سأقول أنه في السطر التالي ، ستتمركز المحاذاة الرأسية أيضًا وسأغلقها
‫على هذا النحو.
‫لذا ها نحن ذا.
‫هذا هو نصنا Beloved World ، وسأقوم بتغيير حجمه قليلاً ، ملف XAML.
‫لذا هنا في قالب النص ، يمكنني المضي قدمًا وتغيير النمط ، على سبيل المثال.
‫يمكنني القيام بأشياء متعددة ومتعددة وأحتاج إلى نمط لاستخدام مشغل النمط.
‫لذلك سأقوم بإضافة نمط نقطة نصية يسمح لي بإنشاء نمط.
‫على سبيل المثال ، أحتاج إلى إضافة نوع الهدف هنا ، والذي سيكون عبارة عن كتلة نصية لدينا.
‫وضمن هذا النمط يمكنني المضي قدمًا وإضافة عوامل ضبط وأسلوب.
‫لذا أولاً وقبل كل شيء ، أنا بحاجة إلى أداة ضبط والتي ستكون مقدمة للخاصية.
‫لذلك أريد أن أضبط المقدمة ، وأريد تغيير المقدمة وأريد تغييرها إلى اللون الأخضر.
‫لذلك سوف تقوم بتعيين القيمة على اللون الأخضر.
‫وبعد ذلك ، أريد أن يكون لدي مشغلات يمكنها فعل ذلك بالفعل لأنها خضراء فقط في الوقت الحالي.
‫لكنني أريد أن يتم تشغيل هذا وأفعل ذلك باستخدام مشغلات نقطة النمط.
‫الآن ضمن علامة مشغلات النمط ، يمكنني إنشاء مشغلات مختلفة وسأحصل فقط
‫على مشغل واحد سيتم تحريكه بالماوس.
‫لذا فإن خاصية هذا المشغل هي تمرير الماوس فوقها.
‫لذلك عندما نمرر فوق هذا النص ، أريد أن يتم تنفيذ هذا المشغل وسأرغب
‫في تعيين القيمة على "صواب".
‫برأس مال T من هذا القبيل.
‫لذلك ضمن علامة المشغل هذه ، يمكنني إنشاء المستوطنين الخاصين بي وسيكون هذا هو ما يجب تغييره بشكل عام.
‫لنفترض الآن أن لدي هذا النص الأخضر وأريد أن يكون باللون الأحمر عندما أحوم فوقه.
‫لذلك سيتم تعيين الخاصية setter على المقدمة أو تعيين الخاصية الأمامية إلى قيمة
‫red.
‫لذلك عندما أقوم بتحريك الماوس فوقه الآن أو انتهى الماوس ، سيتم تنفيذ هذا المشغل وسيتم
‫تشغيل جميع أدوات تحديده أيضًا أو تنفيذها أيضًا.
‫والمُحدِّد التالي الذي أريد إضافته سيكون خاصية setter.
‫وهنا الإعلانات النصية التي أريد أن أضبطها على قيمة التسطير.
‫حسنًا ، لنغلق هذا المحدد ودعنا نتحقق مما إذا كان المشغل يعمل أم لا.
‫إذن هذا مجرد نص ، أليس كذلك؟
‫ودعنا نتحقق من الكود بعمق الآن أو بتعمق أكثر بقليل.
‫إذن لدينا هذه الشبكة.
‫وهو موجود في لوحة Stack.
‫وهناك لدينا هذا النص فقط.
‫وهذا هو النص الذي نراه هنا ، مرحبًا بالعالم الحبيب.
‫له حجم خط ويتم توسيطه.
‫إذن هذه هي الخصائص العامة للكتلة النصية.
‫لكنني الآن أقوم بضبط نمط كتلة النص حتى أتمكن من إضافة بعض مكونات النمط هنا.
‫وأنا أستخدم علامة النمط هذه وأقول أن النوع المستهدف من هذا النمط يجب أن يكون كتلة النص نفسها لأنها يمكن أن تكون مكونات
‫داخل كتلة النص ، لكن هذا سيكون بعيدًا جدًا الآن.
‫لكن بشكل عام ، لدينا أداة الإعداد هنا ، والتي تحدد الأسلوب.
‫إذن هذا شيء يتم القيام به على الفور ، أليس كذلك؟
‫لا يتعين علينا إطلاق ذلك.
‫ولكن بعد ذلك يمكننا إضافة مشغلات نمط تحتوي على مشغل يقوم بعد ذلك بتعيين الأشياء ونحتاج إلى تحديد الخاصية
‫التي يجب أن تكون لتشغيل هذا المشغل.
‫هذا هو أكثر من أكثر.
‫عندما يكون ذلك صحيحًا ، أريد أن يتم تنفيذ المستوطنين وهذا سيقول ببساطة ، حسنًا
‫، أريد تغيير مقدمة الخاصية إلى قيمة الأحمر وأريد تعيين إعلانات نص الخاصية إلى قيمة
‫التسطير.
‫لذلك يمكنك إضافة عدة محددات مختلفة هنا إذا كنت ترغب في ذلك ، وسيتم تشغيل ذلك كلما تم تنفيذ
‫هذا هنا وسيتم تنفيذه إذا كان الماوس فوقه صحيحًا.
‫لذلك دعونا فقط نشغل الكود ونرى كيف يعمل هذا حتى نحصل عليه.
‫مرحبا ايها العالم الحبيب.
‫وأنا أحوم فوقها.
‫وكما ترى ، زخرفة النص على الخط.
‫لذلك تم تسطير النص والقيمة الأمامية باللون الأحمر.
‫إذن هذا اللون يتحول من الأخضر إلى الأحمر.
‫حسنا.
‫هذه هي الطريقة التي يمكنك بها المضي قدمًا واستخدام مشغلات أو محفزات النمط بشكل عام.
‫وشيء آخر يمكنك رؤيته وهو أنه عندما تعود القيمة إلى خطأ ، فإنها تعود إلى قيمتها الأصلية.
‫لذا ضع خطًا تحت وقراءة لم يعد صحيحًا.
‫لذلك يعودون ببساطة إلى قيمته الأصلية ، التي كانت خضراء للمقدمة وكان التسطير خاطئًا
‫أو خاطئًا.
‫لذلك لم يتم تسطير نص الإعلان.
‫الآن دعنا نمضي قدمًا وننشئ كتلة نصية أخرى ستكون في شبكة فريدة.
‫لذلك أريد أن يكون لدي شبكات متعددة فوق بعضها البعض.
‫كان بإمكاني استخدام غلاف مختلف ، لكنني سأستخدم Grid هنا وهناك.
‫لدي كتلة نصية مرة أخرى وهذه المرة يجب أن تقول شيئًا مثل ، مرحبًا ، رفيق ، مرحبًا ، رفيق.
‫والآن سأقوم بتعيين حجم الخط على 24 حجم الخط ، سيكون 24.
‫ثم أريد أن يكون هذا محاذيًا مركزيًا أيضًا لكل من المحاذاة الأفقية والعمودية.
‫وبعد ذلك يجب تصميم قالب النص هذا.
‫لذلك سأقوم بتصميم أشياء متعددة هنا.
‫بادئ ذي بدء ، أريد إضافة علامة نمط كتلة النص هنا وهناك.
‫سأضيف أسلوب.
‫وسيكون النوع المستهدف من كتلة النص مرة أخرى.
‫وهنا يمكنني إنشاء مشغلات الحدث.
‫لقد رأيت مشغل النمط هنا ، والذي كان مجرد مشغل.
‫لكن الآن أريد تشغيل مشغل حدث سيكون مختلفًا بعض الشيء.
‫لذلك دعونا ننشئ مشغلات نقطة نمط أولاً ، ابدأ علامة المشغلات وهنا أريد أن يكون هناك مشغل حدث وسيتم تنفيذه
‫عندما يكون الحدث الذي تم جذره صحيحًا وستكون قواعد الحدث عبارة عن إدخال الماوس.
‫لذلك سيتم تشغيل ذلك عندما ندخل كتلة النص هذه بالماوس.
‫لذا فهو إلى حد كبير نفس الشيء الذي رأيناه هنا.
‫كانت هذه الخاصية فوق الماوس؟
‫لكننا لا نستخدم الزناد.
‫نحن نستخدم مشغل الحدث.
‫وسترى الفرق في ثانية.
‫الآن ، في هذا الحدث Trigger ، يمكنني المضي قدمًا وإنشاء إجراء مشغل حدث أو إجراءات متعددة بالفعل.
‫لدي هذه العلامة الأخرى وهنا يمكنني الآن إنشاء جميع الإجراءات المختلفة التي أريد
‫تشغيلها عند تشغيل هذا الحدث.
‫لذلك عندما ندخل بالماوس ، فلنقم بإنشاء إجراء محفز للحدث وسيتم القيام بذلك على هذا النحو.
‫تبدأ القصة المصورة.
‫لذلك نحن بحاجة إلى هذه العلامة ، ابدأ القصة المصورة.
‫ثم نقوم بإنشاء لوحة عمل وداخل لوحة العمل يمكننا الآن عمل رسوم متحركة.
‫لذلك ستكون الرسوم المتحركة المزدوجة عبارة عن رسم متحرك مشترك يتم تشغيله خلال مدة محددة.
‫ثم هنا لدينا صفر كالساعات و 0 دقيقة و 0 ثانية و 500 مللي ثانية.
‫لذلك خلال فترة 500 مللي ثانية ، أريد أن يتم تنفيذ هذا.
‫لذلك هذه الرسوم المتحركة للتشغيل ثم أريد تغيير حجم الخط.
‫ولكن الآن لتغيير حجم الخط ، أحتاج إلى استخدام الخاصية الهدف نقطة لوحة العمل.
‫لذلك فهي تشبه إلى حد كبير خاصية setter التي رأيناها هنا حيث قمنا بتغيير زخارف النص
‫ووضعها تحت خط.
‫الآن نحن بحاجة إلى استخدام هذا النهج هنا ، القصة المصورة ، الهدف ، الملكية بدلاً من ذلك.
‫وهنا يمكنني تحديد الخاصية التي أريد تغييرها.
‫لذلك أريد تغيير حجم الخط أيضًا.
‫والآن يمكنني تحديد القيمة.
‫إذن ، هناك خاصية اثنين هنا وقمت بتعيين القيمة على 72.
‫هذه هي الرسوم المتحركة المزدوجة التي نعرضها هنا.
‫لذا فهو مشابه لما رأيناه هنا.
‫فقط القيم أو الأسماء مختلفة.
‫لذلك كانت هذه خاصية ، لكنها الآن خاصية هدف لوحة العمل.
‫ثم لدينا القيمة التي تم وضع خط تحتها ، ولكنها الآن الكلمتان الأساسيتان أو الخاصية التي نحتاج
‫إلى تغييرها.
‫هذا هو إلى حد كبير كيف يمكننا إنشاء هذه الرسوم المتحركة الصغيرة التي سيتم تشغيلها.
‫فلنبدأ الآن بهذا الكود ونرى ما يحدث.
‫هذا نحن.
‫مرحبا يا صديقي.
‫وها نحن ذا.
‫كما ترون الآن ، إنها كبيرة ولا تعود إلى الوراء.
‫أوه ، هيا ، عد إلى الحجم الطبيعي و.
‫حسنًا ، لا يهتم بما أريده لأنني لم أقم بتطبيقه.
‫حتى الآن هو تحد صغير بالنسبة لك.
‫الرجاء إضافة أخرى.
‫لقد ذهب إلى هنا ، وهو ما سيفعل ذلك بالضبط.
‫لذا أضف مشغل حدث.
‫القليل فقط لديه القليل من التلميح.
‫لست بحاجة إلى القيام بكل ذلك مرة أخرى.
‫تحتاج فقط إلى إنشاء أو إعادة إنتاج هذا الرمز.
‫لذا يرجى المضي قدمًا وإضافة الوظيفة.
‫لذلك عندما يترك الماوس كتلة النص هذه ، يعود النص إلى حجمه الأصلي ، والذي كان 24 ، ويجب أن يتم ذلك على
‫مدار مدة ، دعنا نقول ، 300 مللي ثانية.
‫لذا يرجى المضي قدما وجرب ذلك.
‫حسنا.
‫أتمنى أن تكون قد فعلت.
‫لذلك سأقوم فقط بنسخ مشغل هذا الحدث.
‫سأقوم بلصقه أدناه.
‫وبدلاً من إدخال الماوس ، سأدخل شيئًا مثل ورقة الفأر.
‫ويجب أن تكون المدة 300 مللي ثانية ويجب ضبط حجم الخط على القيمة 24.
‫وهذا كل شيء.
‫إذن هذا هو مشغل الحدث الذي أحتاجه للعودة كلما ترك الماوس كتلة النص.
‫لذلك دعونا نختبر ذلك مرة أخرى.
‫ها نحن ذا.
‫مرحبا يا صديقي.
‫والآن اسمحوا لي أن أتركها.
‫ويعود ويعود أسرع من بدايته.
‫حق؟
‫لذلك كان الرقم الموجود في النص أو إدخال الماوس 500 مللي ثانية وكانت ورقة الفأرة 300 مللي ثانية.
‫حتى تتمكن من إجراء بعض الأحداث الرائعة هنا وكما ترى ، فإنها تتفاعل بشكل سريع.
‫لذلك يعود على الفور وهذا رائع جدًا.
‫حسنًا ، هذه محفزات للأحداث.
‫إذاً لقد رأيت مشغلات النمط التي هي من نوع المشغل ثم رأيت مشغلات النمط التي
‫هي من نوع مشغل الحدث.
‫الآن هناك شيء آخر أود إضافة مربع اختيار به نص صغير أسفله ، والذي سيتم
‫تعديله.
‫لذلك سيستخدم هذا الربط ، ربط البيانات.
‫لقد رأينا ربط البيانات من قبل ، وبدلاً من أن يكون في شبكة ، يجب أن يكون في لوحة مكدس.
‫لأنني أريد تكديس شيئين.
‫أريد تكديس خانة الاختيار أعلى كتلة النص.
‫لذلك داخل لوحة Stack ، أقوم بإنشاء مربع اختيار ويجب أن يحمل اسم KB.
‫مرحبًا ، KB تعني CheckBox.
‫ثم يجب أن يكون محتوى مربع الاختيار شيئًا مثل هل يوجد شخص ما؟
‫علامة استفهام.
‫الآن ، اسمح لي لوحة المكدس في الواقع بمحاذاة ذلك أفقيًا ومحاذاة رأسيًا أيضًا.
‫مركز المحاذاة الرأسية كذلك.
‫حسنا.
‫الآن يجب أن يؤدي مربع الاختيار هذا إلى تشغيل شيء ما ويجب أن يغير كتابنا المدرسي.
‫لذلك سنحتاج إلى كتلة نصية وسأقوم بمحاذاة ذلك أفقيًا أيضًا.
‫لذا اسمحوا لي بتوسيط كتلة النص.
‫ثم سأقوم بتعيين حجم خط كتلة النص الخاصة بي على 36 ، لذلك يجب أن يكون كبيرًا بما يكفي الآن داخل كتلة
‫النص.
‫أريد المضي قدما وتغيير أسلوبه.
‫هذا شيء رأيناه في القمة بالفعل.
‫لذلك نستخدم نمط كتلة النص ونوع هدف النمط هذا ونحدد نوع الهدف.
‫لذلك سأفعل الشيء نفسه هنا ، نمط نقطة كتلة النص ثم هنا أقوم بإنشاء علامة نمط ونوع
‫هدف النمط.
‫لذا فإن الهدف الذي أملكه هو كتلة النص الخاصة بي.
‫لذلك أريد تغيير كتلة النص.
‫وكيف أفعل ذلك؟
‫حسنًا ، مع واضعي.
‫لذلك سأقوم على الفور.
‫وهذه المرة سيكون المشغل عبارة عن بيانات ، مشغل مدفوع بالبيانات ، ولن يكون محفزًا مدفوعًا بالحدث
‫، كما رأينا هنا.
‫حتى الحدث الزناد وهكذا دواليك.
‫لكنها الآن محفز مدفوع بالبيانات.
‫لذا فإن خاصية جهاز الإعداد الخاص بي ستكون خاصية ستكون النص.
‫وأريد تغيير قيمة النص إلى شيء مثل لا.
‫والآن سيكون لدي واضع آخر في الجزء السفلي منه.
‫لذلك هذا سيغير الخاصية المسماة المقدمة.
‫لذلك يجب فقط تغيير اللون إلى قيمة الأحمر.
‫الآن سيتم تنفيذ ذلك على الفور ، أليس كذلك؟
‫لذلك لدينا الأسلوب ولم يكن لدينا أي مشغلات حتى الآن.
‫لذلك سيتم تعيين هذا.
‫كان بإمكاننا فعل الشيء نفسه.
‫كان بإمكاننا تعيين النص هنا على مستوى كتلة النص.
‫كان بإمكاننا استخدام قيمة اللون الأحمر في مستوى كتلة النص.
‫حسنا.
‫لكني أريد فقط أن أوضح لكم أن هذا نهج بديل وسيساعدك هذا على القيام بما
‫يلي.
‫لذلك في هذه الحالة ، سأحتاج إلى مشغل نقطة نمط.
‫لذلك أحتاج إلى علامة مشغلات النمط.
‫والآن وأقوم هنا بإنشاء مشغل بيانات.
‫لذلك كما ترى ، فقد استخدمنا مشغلات عادية تستند إلى خاصية.
‫ثم لدينا مشغلات مدفوعة بالأحداث ، وهي حدث متجذر يتم تنفيذه.
‫لذلك فهو نفس الشيء إلى حد كبير.
‫لكن في هذه الحالة ، كما تعلم ، يكون الماوس فوقها ويدخل الماوس.
‫ولكن في هذه الحالة ، فإن الخاصية هي التي تقوم بتشغيلها.
‫وفي هذه الحالة ، إنه حدث فعلي وسيصبح الآن بيانات.
‫لذلك ترى ثلاثة أنواع مختلفة من المحفزات.
‫لذا فإن مشغل البيانات هذا سيحدد الأشياء أيضًا.
‫ولكن الآن لتشغيل الزناد ، أحتاج إلى استخدام الربط في هذه الحالة.
‫لذا سأقوم بربط اسم العنصر المسمى CB.
‫مرحبًا ، وهو مربع الاختيار الخاص بنا و CB hello.
‫يجب أن يكون المسار محددًا لذلك سوف أتحقق من أنه تم التحقق من القيمة و.
‫سأقوم بتعيين هذه القيمة على صواب.
‫الآن ، ماذا يحدث إذا كنت.
‫حدد مربع الاختيار هذا.
‫حسنًا ، يجب تنفيذ بعض المحددات ، لذا يجب تنفيذ المحدد بخاصية النص وتعيين
‫قيمته على شيء مثل.
‫بالطبع.
‫الآن ، القطاع التالي الذي أود إضافته سيكون له خاصية المقدمة.
‫لذلك سوف يغير خاصية المقدمة إلى قيمة الأخضر ، وهذا كل شيء.
‫إذن هذا هو مشغل البيانات لدينا.
‫دعنا نمضي قدما وندير ذلك.
‫لذا ها نحن ذا.
‫لدينا مشغلين خاصين بنا يعتمدان على تجاوز الماوس أو حدث الجذر هنا.
‫ثم إذا قمت بتحديد مربع الاختيار هذا ، فلنقم بذلك.
‫فقاعة.
‫وتقول ، بالطبع.
‫كما ترى ، يقوم مربع الاختيار لدينا بتشغيل هذا الآن وهذا ليس هو الحدث.
‫لذلك ليس هذا هو حدث الاختيار.
‫إنه يعتمد على البيانات الموجودة وراءه.
‫لذلك نحن ملزمون بالقيمة المحددة لـ KB الخاصة بنا.
‫مرحبًا.
‫لذلك من مربع الاختيار لدينا هنا.
‫لذا كما قلت ، إنه مهم ، أليس كذلك؟
‫لذلك كان من الممكن أن تفعل الشيء نفسه مع حدث يتم تشغيله عندما نتحقق منه لأنك
‫تعلم أن التحقق أو التحقق يمكن أن يبدأ حدثًا.
‫لذا تحقق من تغيير أو شيء من هذا القبيل ، أليس كذلك؟
‫لذا لكن هذه المرة نقوم بذلك بناءً على البيانات.
‫لذلك كلما ضغطت عليه ، سيتم تنفيذ هذا.
‫حسنا.
‫هذه هي الأنواع الثلاثة المختلفة من المشغلات وأنواع مختلفة من التنفيذ الجيد لبعض التغييرات
‫الرائعة في واجهة المستخدم الخاصة بك.
‫رائعة.
‫آمل أن تتمكن من فهم كل ذلك.
‫أنصح بتجربة بعض مشغلات البيانات الإضافية.
‫تحقق من شيء مع النص.
‫لذلك إذا قام شخص ما بإدخال نص معين ، فيجب تغيير شيء ما أو هذا النوع من الأشياء.
‫لذا يمكنك القيام بالكثير من الأشياء باستخدام XAML دون الحاجة إلى لمس رمز خلفي ، وهذا رائع جدًا.
‫حسنًا ، عظيم.
‫لذلك نراكم في الفيديو التالي.