ما هو WPF (أساسيات العرض التقديمي في Windows): دليل كامل للهندسة المعمارية، وXAML، وعناصر التحكم، والتخطيط، والبيانات، والرسومات، والتخصيص

آخر تحديث: 14/08/2025
نبذة عن الكاتب: إسحاق
  • WPF هو إطار عمل واجهة المستخدم .NET لـ ويندوز: متجه، معجل بواسطة وحدة معالجة الرسوميات، ويعتمد على XAML.
  • هناك تنفيذان: .NET (مفتوح المصدر) و.NET Framework 4؛ وكلاهما مخصص لنظام Windows فقط.
  • ملزم، الأوامرتمكّن الأنماط والقوالب من إنشاء واجهات مستخدم غنية وقابلة للصيانة وموجهة نحو MVVM.
  • الرسومات ثنائية الأبعاد/ثلاثية الأبعاد، والرسوم المتحركة، والطباعة، والوسائط المتعددة، والتوافق بين أنظمة التشغيل Win2/WinForms.

WPF Windows Presentation Foundation

Windows Presentation Foundation (WPF) هو إطار عمل واجهة المستخدم .NET لبناء تطبيقات سطح مكتب Windows حديثة وقابلة للتطوير ومعززة بالرسومات. خردوات. وُلِد للاستفادة من Direct3D ووحدات معالجة الرسومات اليوم، تقدم محرك عرض يعتمد على المتجهات، وتخطيطًا سريع الاستجابة، ورسومًا متحركة، وفصلًا واضحًا بين الواجهة والمنطق بفضل XAML والرمز الموجود خلفها.

بالإضافة إلى قوتها البصرية، يدمج WPF نموذج بيانات قوي للغاية، وأنماط وقوالب، وأوامر، ودعم نص متقدم، والتوافق مع الوسائط المتعددة، و2D/3D، والطباعة عالية الجودة. ويترافق كل ذلك مع أدوات ناضجة في Visual Studio وBlend، ونظام بيئي من عناصر التحكم التابعة لجهات خارجية، والقدرة على التفاعل مع التقنيات الموجودة مثل Windows Forms أو Win32.

ما هو WPF وتطبيقاته

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

هناك نوعان رئيسيان من التنفيذات: إصدار .NET (المفتوح والمستضاف على GitHub) وإصدار .NET Framework 4 الذي يأتي مع Windows. يتم تشغيل إصدار .NET حصريًا على نظام التشغيل Windowsمع أن .NET متعدد المنصات، ويتطلب مُصمم XAML الخاص به إصدار Visual Studio 2019 16.8 على الأقل (أو إصدارات أحدث حسب إصدار .NET). يدعم Visual Studio 4 و2017 الإصدار 2019 من .NET Framework، وهو مُوزّع كجزء من نظام التشغيل نفسه.

إن نقل التطبيقات من .NET Framework إلى .NET له فوائد واضحة: تحسين الأداء، وواجهات برمجة التطبيقات الجديدة، وأحدث تحسينات اللغة، ومزيد من إمكانية الوصول و دقة، وتم تحديث الأدوات. إذا قمت بصيانة قاعدة مثبتة تعتمد على .NET Framework، فإن القفزة تؤتي ثمارها في الإنتاجية والصيانة على المدى المتوسط، وخاصة في سيناريوهات LOB (خط العمل).

تاريخيًا، تم تضمين WPF منذ نظام التشغيل Windows Vista وكان متاحًا أيضًا لنظامي التشغيل Windows XP SP2 وWindows Server 2003، مما أدى إلى ترسيخ نفسه باعتباره طبقة واجهة المستخدم لسطح المكتب المرجعية في نظام .NET البيئي. على مستوى عائلة التكنولوجيا، كان Silverlight عبارة عن مجموعة فرعية من WPF تهدف إلى تطبيقات الويب والجوال الغنية، وترث نموذج XAML، على الرغم من عدم وجود دعم ثلاثي الأبعاد ونطاق أقل مقارنة بـ WPF.

يعتمد عرض WPF على Direct3D، مما يتيح إمكانية الحصول على رسومات معقدة وموضوعات متسقة ونقل العمل إلى وحدة معالجة الرسومات لتقليل حمل وحدة المعالجة المركزية. يمنع هذا التركيز على المتجهات ظهور البكسلات عند التدرج ويسهل التجارب السلسة عندما تسمح الأجهزة بذلك.

وحدة معالجة الرسومات igpu
مقالة ذات صلة:
كيفية التحقق مما إذا كنت تستخدم بطاقة رسومات مخصصة في نظام التشغيل Windows 11

رسم توضيحي لواجهة WPF

XAML، الكود الخلفي، ونموذج البرمجة

في WPF، يتم التعبير عن الواجهة باستخدام XAML (لغة ترميز تعتمد على XML) ويتم تنفيذ السلوك باستخدام الكود المُدار (C# أو VB.NET) في الفئات الخلفية للكود. يؤدي هذا الفصل بين المسؤوليات إلى تقليل تكاليف التطوير والصيانة ويسمح للمصممين والمطورين بالعمل بالتوازي دون تداخل.

  دليل كامل لإصلاح Windows 11 من CMD: حلول خطوة بخطوة

نموذج البرمجة يعتمد على مساحة اسم System.Windows ويعتمد على المفاهيم المألوفة (إنشاء مثيل للفئة، والخصائص، والطرق، والأحداث) وعلى ركيزتين خاصتين به: خصائص التبعية والأحداث الموجهة. تمكّن خصائص التبعية ربط البيانات، والأنماط، والرسوم المتحركة، ووراثة القيمة؛ يمكن للأحداث الموجهة أن تنتقل عبر الشجرة المرئية، مما يؤدي إلى تبسيط إدارة التفاعلات المعقدة.

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

خطأ في واجهة المستخدم
مقالة ذات صلة:
إصلاح خطأ واجهة المستخدم في الحرب الباردة COD

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

يدعم WPF أيضًا الأنماط المعمارية مثل MVVM بفضل نظام ربط البيانات والأوامر وDataContext. يشجع هذا اختبار الوحدة، وإعادة استخدام العرض، والفصل الصارم بين منطق العرض والعرض.

XAML و WPF وراء الكود

الإدخال والأوامر والضوابط والتخطيط

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

في WPF، يعد عنصر التحكم أي عنصر واجهة مستخدم، مستضاف في نافذة أو صفحة، مع سلوك محدد؛ ويتضمن الإطار مجموعة واسعة من عناصر التحكم الجاهزة للاستخدام. يؤدي هذا إلى تسريع إنشاء التطبيقات الغنية دون الحاجة إلى إنشاء مكونات من الصفر.

من حيث الوظيفة، تغطي عناصر التحكم المضمنة فئات مثل الأزرار وعرض البيانات والتنقل والقوائم والاختيار والإدخال والمزيد. فيما يلي أمثلة للفصول في كل مجموعة:

  • أزرار: زر، زر التكرار.
  • عرض البيانات: DataGrid، ListView، TreeView.
  • التواريخ: التقويم، تاريخ الاختيار.
  • مربعات الحوار: OpenFileDialog، SaveFileDialog، PrintDialog.
  • الحبر الرقمي: InkCanvas، InkPresenter.
  • وثائق: DocumentViewer، FlowDocumentReader، FlowDocumentScrollViewer، FlowDocumentPageViewer، StickyNoteControl.
  • إدخال النص: مربع نص، مربع نص غني، مربع كلمة المرور.
  • تصميم: الحدود، اللوحة القماشية، لوحة DockPanel، الشبكة، GridSplitter، GridView، اللوحة، StackPanel، WrapPanel، ScrollViewer، ScrollBar، Viewbox، VirtualizingStackPanel، النافذة، الإبهام، GroupBox، الموسع، الفاصل، ResizeGrip، BulletDecorator.
  • وسائل الإعلام: الصورة، MediaElement، SoundPlayerAction.
  • القوائم والأشرطة: القائمة، قائمة السياق، شريط الأدوات، شريط الحالة، شريط التقدم.
  • التنقل: الإطار، الصفحة، نافذة التنقل، الارتباط التشعبي، عنصر التحكم في علامة التبويب.
  • اختيار: مربع الاختيار، زر الراديو، مربع التحرير والسرد، مربع القائمة، شريط التمرير.
  • معلومات المستخدم: العلامة، كتلة النص، تلميح الأداة، النافذة المنبثقة، نص الوصول.
  إعدادات زمن استجابة WASAPI في نظام التشغيل Windows: دليل شامل

نظام التصميم (التخطيط) هو أمر أساسي: يقوم بتوزيع عناصر التحكم حسب الحجم والموضع النسبيين، والتفاوض على المساحة بين الآباء والأطفال للتكيف مع التغييرات في النافذة والشاشات. يؤدي هذا إلى تجنب المنطق الخاص بالدقة ويسمح بإنشاء واجهة مستخدم قابلة للتكيف.

تغطي لوحات التصميم الأنماط الأكثر شيوعًا: Canvas (الموضع المطلق)، وDockPanel (التقاط الحافة)، وGrid (الصفوف والأعمدة)، وStackPanel (التكديس الأفقي أو الرأسي)، وVirtualizingStackPanel (التكديس الافتراضي)، وWrapPanel (كسر السطر). على سبيل المثال، يسمح لك DockPanel بتثبيت عناصر التحكم على الحواف وجعل الباقي يشغل المساحة الخالية بسهولة.

عناصر التحكم والتخطيط في WPF

ربط البيانات والقوالب والموارد

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

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

يدعم WPF أوضاع ربط مختلفة: واحدة، أحادية الاتجاه (قراءة) وثنائية الاتجاه (قراءة وكتابة). في تطبيقات الأعمال، يعد الجمع بين هذه الأوضاع في القوائم والنماذج أمرًا شائعًا لتسهيل التحرير والعرض.

بالإضافة إلى كائنات .NET والمجموعات، يمكن استخدام استعلامات LINQ (بما في ذلك LINQ إلى XML) بسهولة كمصدر للبيانات. لا يفرض المحرك العرض: يتم تحديد ذلك من خلال قوالب البيانات، والتي يمكن تخصيصها لكل نوع من الكائنات المرتبطة.

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

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

بفضل القوالب، يمكن تغيير المظهر المرئي لعناصر التحكم دون تغيير سلوكها: يتيح لك ControlTemplate تعديل مظهر عنصر التحكم، ويحدد DataTemplate كيفية عرض البيانات في القوائم والشبكات.

ربط البيانات وقوالب WPF

الرسومات والرسوم المتحركة والنصوص والتخصيص المتقدم

  • يوفر نظام الرسوميات WPF استقلالية الجهاز ودقة الإحداثيات والدعم لمساحات الألوان الواسعة. ويؤدي هذا إلى إنشاء واجهات واضحة، وتحويلات دقيقة، وإعادة إنتاج ألوان عالية الجودة.
  • في 2D، يتضمن أشكال متجهة جاهزة، وهندسة لإنشاء أشكال مخصصة، ولوحة واسعة من الفرش للتدرجات والصور والرسومات والقوام، بالإضافة إلى دعم التحولات مثل التدوير أو التدرج أو الانحراف. تشارك هذه الأشكال في الإدخال وتتلقى التركيز ويتم دمجها في النموذج المرئي.
  • في تقنية ثلاثية الأبعاد، يمكنك دمج المشاهد باستخدام الشبكات والمواد والكاميرات؛ ويمكنك أيضًا عرض محتوى ثنائي الأبعاد على أسطح ثلاثية الأبعاد للحصول على تجارب غامرة وضوابط تفاعلية في الفضاء. على الرغم من محدودية الدعم ثلاثي الأبعاد مقارنة بـ Direct3D الكامل، فإن الدعم ثلاثي الأبعاد في WPF يمتزج جيدًا مع واجهة المستخدم والمستندات والوسائط المتعددة.
  • محرك الرسوم المتحركة مؤقت ومنفصل عن الإطارات، مما يسمح لك بتحريك أي خاصية اعتماد باستخدام فئات مثل DoubleAnimation أو ColorAnimation، التي تتم إدارتها باستخدام Storyboards. يمكن تشغيله بواسطة أحداث أو مشغلات في XAML، مما يسهل الرسوم المتحركة المعقدة باستخدام القليل من التعليمات البرمجية.
  • يدعم WPF الصور والفيديو بشكل أصلي: تنسيقات مثل BMP وJPEG وPNG وTIFF وGIF والأيقونات وWindows Media Photo، بالإضافة إلى WMV وMPEG وAVI، باستخدام برامج الترميز المثبتة على النظام.
  • من حيث الطباعة والنص، فهو يتميز بدعم OpenType وتحسينات ClearType، مع عرض متسارع بالأجهزة، ومتكامل مع الرسومات والرسوم المتحركة لتجربة قراءة عالية الجودة.
  • تم تحديث المؤثرات البصرية: لقد تم إيقاف استخدام BitmapEffects، ومنذ .NET 3.5 SP1، أصبح Effect يسمح بمرشحات معجلة بواسطة وحدة معالجة الرسوميات مثل BlurEffect وDropShadowEffect، بالإضافة إلى تأثيرات مخصصة باستخدام برامج التظليل.
  • يتيح الوضع المحفوظ تقسيم عناصر التحكم إلى أشجار مرئية وإدارة التحديثات بكفاءة، والاستفادة من تسريع وحدة معالجة الرسومات. في الأجهزة المحدودة، يتم تقليل بعض المزايا، ولكن المنصة لا تزال تعمل بشكل جيد.
  • يعد التفاعل بين WPF والتقنيات الأخرى أمرًا بسيطًا: يمكنه استضافة عناصر تحكم WPF في تطبيقات Win32 والعكس صحيح، مما يسهل عمليات الهجرة التدريجية وإعادة استخدام المكونات.
  • تتضمن استراتيجيات عناصر التحكم المخصصة UserControl وControl وFrameworkElement، اعتمادًا على مستوى التخصيص وفصل السلوك والمظهر. تتيح لك المحفزات تغيير الأنماط والقوالب استجابةً للأحداث دون تعديل السلوك الأساسي، مما يؤدي إلى إثراء التصميم المرئي لديك.
  • لقد تم تحسين أدوات التطوير: يقدم Visual Studio مصمم XAML، واستكشاف الأخطاء وإصلاحها، وتحليل الأداء، مع دعم IntelliSense والمعاينة التي تعمل على تسريع إنشاء وضبط واجهات المستخدم المعقدة.
  • يتضمن النظام البيئي الخارجي عناصر تحكم متقدمة من البائعين مثل Infragistics و Telerik و DevExpress، بالإضافة إلى الموارد والمشاريع مفتوحة المصدر مثل Avalonia UI التي تلهم الأنماط متعددة الأنظمة الأساسية.
  • بالنسبة للتطبيقات على نظام التشغيل Windows، يجمع WPF بين الأداء والتصميم الحديث والهندسة المرنة، مما يجعله خيارًا قويًا مقارنة بالبدائل مثل Windows Forms أو تطبيقات الويب أو Java Swing.
  ارتفاع استخدام وحدة المعالجة المركزية (CPU) حسب النظام أو ملف svchost.exe – دليل فني خطوة بخطوة

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