نظرة عامة حول العناصر الأساسية

نسبة عالية من الفئات في Windows Presentation Foundation (WPF) مشتقة من الفئات الأربع الذي تتم الإشارة غالباً اليهم في وثائق SDKعلى أنها فئات العنصر الأساسي. هذه الفئات هي UIElement ، FrameworkElement ، ContentElement ، و FrameworkContentElement. فئة DependencyObject هي أيضاً متعلقة لأنه الفئة الأساسية المشتركة إلى UIElement و ContentElement

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

  • عنصر الأساس APIs في فئات WPF
  • اختيار أي عنصر ليشتق منه
  • فئات أساسية أخرى
  • موضوعات ذات صلة

عنصر الأساس APIs في فئات WPF

كلا من UIElement و ContentElement مشتقين من DependencyObject ، من خلال طرق مختلفة إلى حد ما. التقسيم على هذا المستوى يتعامل مع كيفية UIElementأو ContentElementالمستخدمة في واجهة مستخدم و ما purpose يقومون بدور في التطبيقات. UIElementيحتوي أيضا علىVisualفي هيكلي للفئة الخاصة بها، التي هو يعتمد فئة الذي يستهدف الرسومات منخفضة المستوى الأساسيWindows Presentation Foundation (WPF). Visualيوفر إطار عمل تقديم بواسطة تعريف مناطق مستقلة شاشة المستطيلة. وعملياً، UIElementهو لعناصر طراز كائن بقعة صغيرة، سيعتمد مخصصة ل Render والتخطيط في المناطق التي يمكن وصف كمناطق شاشة المستطيلة، وحيث أن طراز المحتوى هو عن عمد أكثر مفتوحاً، للسماح لمجموعات مختلفة من العناصر. ContentElement does not derive from Visual; its model is that a ContentElement would be consumed by something else, such as a reader or viewer that would then interpret the elements and produce the complete Visual for Windows Presentation Foundation (WPF) to consume. فئات UIElement المعينة مهيئة لتكون مضيفة للمحتوى: وهي توفر المضيفة والتقديم ل واحد أو المزيد ContentElementالفئات ( DocumentViewerهو مثال عن مثل هذه الفئة). ContentElementهو يستخدم كفئة أساسية للعناصر مع بعض نماذج كائن أصغر حجماً وأكثر معالجة النصوص أو معلومات أو محتوى مستند، قد تتم استضافتها فيUIElement.

مستوى إطار العمل و مستوى الأساس

UIElement يخدم كفئة الأساس لـ FrameworkElement ، و ContentElement يخدم كفئة الأساس لـ FrameworkContentElement. السبب في هذا المستوى التالي من الفئات هو دعم مستوى WPF الأساس و هو منفصل عن مستوى إطار عمل WPF، مع هذه قسمة أيضاً موجودة في كيف واجهات API تنقسم بين تجميعات PresentationCore و PresentationFramework. مستوى إطار عمل WPF يقدم حل كامل أكثر لحاجات التطبيق الأساسية بما في ذلك تطبيق إدارة التخطيط للعرض التقديمي. مستوى الأساس WPF يوفر طريقة لاستخدام الكثير من WPF دون اتخاذ مقدار الحمل على التجميع الإضافي. التمييز بين هذه المستويات نادراً جداً ما يفرق لأمور لمعظم سيناريوهات تطوير التطبيق النموذجي و بشكل عام يجب التفكير في WPF واجهات API ككل و لا تشغل نفسك بالفرق بين مستوى إطار عمل WPF و مستوى الأساس WPF . قد تحتاج إلى معرفة حول مستوى الفروقات في حالة اختيار تصميم التطبيق الخاص بك استبدال كميات حقيقية من وظائف مستوى إطار عمل WPF ، على سبيل المثال إذا كان الحل الكلي الخاص بك لديه التطبيقات إلى تركيب و تخطيط واجهة المستخدم (UI) الخاصة به.

اختيار أي عنصر ليشتق منه

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

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

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

إذا قمت بإنشاء فئة تشتق من DependencyObject، فانك ترث الوظائف التالية:

  • دعم GetValue وSetValueو دعم نظام الخاصية العامة.

  • القدرة على استخدام الخصائص التبعية و الخصائص المرفقة التي تم تطبيقهم مثل الخصائص التبعية .

إذا قمت بإنشاء فئة تشتق من UIElement، ترث الوظائف التالية بالإضافة إلى تلك التي يوفرها DependencyObject:

إذا قمت بإنشاء فئة تشتق من FrameworkElement، ترث الوظائف التالية بالإضافة إلى تلك التي يوفرها UIElement:

  • دعم التنميط و لوحات العمل. للمزيد من المعلومات، راجع Style ونظرة عامة حول لوحات العمل.

  • دعم لربط البيانات. لمزيد من المعلومات، راجع نظرة عامة لربط البيانات.

  • دعم لمراجع المورد الحيوي. لمزيد من المعلومات، راجع نظرة عامة حول الموارد.

  • دعم توريث قيمة الخاصية و علامات أخرى في بيانات التعريف التي تساعد على تبليغ الشروط حول الخصائص إلى خدمات إطار العمل مثل تطبيق إطار عمل التخطيط أو الأنماط أو ربط البيانات. لمزيد من المعلومات، راجع بيانات التعريف خاصية إطار العمل.

  • المفهوم لشجرة المنطقية . لمزيد من المعلومات، راجع الأشجار فى الWPF.

  • دعم لتطبيق مستوي إطار عمل WPF العملي لتخطيط النظام، بما في ذلك تجاوز OnPropertyChanged الذي يمكنه الكشف عن التغييرات للخصائص التي تؤثر على التخطيط.

إذا قمت بإنشاء فئة تشتق من ContentElement، ترث الوظائف التالية بالإضافة إلى تلك التي يوفرها DependencyObject:

إذا قمت بإنشاء فئة تشتق من FrameworkContentElement، تحصل على الوظائف التالية بالإضافة إلى تلك التي يوفرها ContentElement:

  • دعم التنميط و لوحات العمل. للمزيد من المعلومات، راجع Style ونظرة عامة حول الحركة.

  • دعم لربط البيانات. لمزيد من المعلومات، راجع نظرة عامة لربط البيانات.

  • دعم لمراجع المورد الحيوي. لمزيد من المعلومات، راجع نظرة عامة حول الموارد.

  • دعم توريث قيمة الخاصية و علامات أخرى في بيانات التعريف التي تساعد على تبليغ الشروط حول الخصائص إلى خدمات إطار العمل مثل تطبيق إطار عمل التخطيط أو الأنماط أو ربط البيانات. لمزيد من المعلومات، راجع بيانات التعريف خاصية إطار العمل.

  • انك لا ترث الوصول إلى تعديلات نظام التخطيط ( مثل ArrangeOverride). تطبيقات نظام التخطيط متوفرة فقط على FrameworkElement. ومع ذلك، انك ترث تجاوز OnPropertyChanged الذي يمكنه الكشف عن التغييرات للخصائص التي تؤثر على التخطيط و تنشئ تقرير عن هذا إلى أي مضيف محتوى.

طرازات المحتوى يتم توثّيقها للعديد من الفئات. يكون طراز المحتوى للفئة عامل محتمل يجب مراعاته إذا أردت العثور على فئة مناسبة لاشتقاق منها. لمزيد من المعلومات، راجع طراز محتوى WPF.

فئات أساسية أخرى

DispatcherObject

DispatcherObject يوفر دعم لنموذج مؤشر الترابط WPF و يمكِّن كافة الكائنات المُنشئة لتطبيقات WPF لتقترن مع Dispatcher. حتى إذا لم تشتق من UIElement ، DependencyObject, أو Visual ، يجب مراعاة الاشتقاق DispatcherObject من أجل الحصول على هذا الدعم لنموذج مؤشر الترابط. لمزيد من المعلومات، راجع نموذج مؤشر الترابط.

المرئي

Visual يقوم بتنفيذ مفهوم كائن ثنائي الأبعاد الذي يتطلب عرض تقديمي مرئي في منطقة مستطيلة تقريباً. عرض الفعلي Visualيحدث في الفئات الأخرى (هو متكاملا لا)، ولكن Visualتوفر الفئة نوع معروفة التي هو المستخدمة من قبل عمليات رسم هندسي في مستويات مختلفة. Visualimplements عدد مرات الدخول إلى الاختبار، ولكن لا يعرض الأحداث التي تقوم بالإبلاغ عن إجراء اختبار مكون positives (وهي في UIElement). لمزيد من المعلومات، راجع برمجة الطبقة المرئية.

freezable

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

Animatable

Animatable هو فئة مشتقة Freezable التي بشكل خاص تضيف طبقة عنصر تحكم الحركة و بعض أعضاء الأداة المساعدة بحيث أن خصائص المتحرك حالياً يمكن تمييزها عن خصائص غير المتحرك.

عنصر التحكم

Control هي الفئة الأساسية المقصودة لنوع الكائن مسمى أحياناً عنصر تحكم أو مكون اعتماداً على تقنية. في العام فئات عنصر تحكم WPF هي فئات إما مباشرةً تمثل عنصر تحكم UI أو تشارك بشكل كبير في تركيب عنصر التحكم. الأداء الوظيفي الأساسي هو أن يمكن Control قولبة عنصر التحكم.

راجع أيضًا:

المرجع

Control

المبادئ

نظرة عامة حول خصائص التبعية

نظرة عامة على تأليف التحكم

بنية WPF