برنامج تعليمي WPF للمبتدئين

⚡ ملخص ذكي

وبف (Windows العرض Foundation) هو Microsoftإطار عمل لبناء ثري Windows تطبيقات سطح المكتب. يتعلم المبتدئون كيفية دمج XAML وربط البيانات والرسومات المُسرّعة بواسطة الأجهزة لإنشاء واجهات مستخدم قابلة للتطوير وغنية بصريًا باستخدام كمية أقل من التعليمات البرمجية.

  • 🧭 Foundation: WPF هو إطار عمل واجهة مستخدم قائم على المتجهات ويعمل بتقنية DirectX داخل منصة .NET.
  • 🎨 ترميز XAML: يفصل بناء جملة XML التصريحي تصميم الواجهة عن منطق الأعمال في لغة C#.
  • 🧱 الهندسة المعمارية: تتعاون كل من PresentationFramework و PresentationCore و Milcore فوق DirectX من أجل العرض.
  • 🔗 ربط البيانات: يربط الربط المدمج عناصر التحكم بمصادر البيانات ويدعم نمط MVVM.
  • 🛠️ بداية عملية: تتيح لك قوالب Visual Studio إنشاء وتشغيل أول تطبيق WPF في سبع خطوات.
  • 🚀 الصلة الحديثة: WPF مفتوح المصدر ويأتي مع .NET 10 مع دعم طويل الأمد.

برنامج تعليمي WPF للمبتدئين

ما هو WPF؟

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

يمكن اعتبار WPF تطورًا لـ WinForms. فهو يوفر نظام عرض رسومي سهل الاستخدام لـ Windows ويوفر فصلاً واضحاً بين واجهة المستخدم ومنطق الأعمال.

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

لماذا WPF؟

هناك العديد من الأسباب لاستخدام منصة WPF. ومن أبرزها:

  • منصة مثالية للاستخدام إذا كنت تريد التعامل مع أنواع الوسائط المختلفة
  • تتيح لك WPF إنشاء واجهة مستخدم قابلة للتخصيص. كما أنها تساعدك عندما تحتاج إلى تحميل جزء من واجهة المستخدم أو ترغب في ربط بيانات XML.
  • فهو يسمح لك بالاستفادة من مكتبة فئات .NET الكبيرة التي تم بناؤها عليها تقنية .NET
  • استقلالية الدقة، لذا يمكن تشغيل التطبيقات المطورة باستخدام WPF على شاشات الأجهزة اللوحية الصغيرة أو شاشة بحجم 20 بوصة
  • تعتمد WPF على DirectX بدلاً من WinAPI. فهي تستخدم نظام الرسومات الخاص بجهاز الكمبيوتر، مما يوفر قدرة أكبر على عرض الرسومات.
  • يدعم نموذج مستند التدفق الذي يتيح جودة تصميم "النشر المكتبي".
  • يرتبط المظهر والسلوك ارتباطًا ضعيفًا. وهذا يسمح للمصممين والمطورين بالعمل على نموذجين منفصلين.
  • في إطار عمل WPF، يمكنك تصميم الأدوات بشكل رسومي باستخدام مستندات XML بسيطة بدلاً من تحليل التعليمات البرمجية.
  • يتيح لك استخدام تسريع الأجهزة لرسم واجهة المستخدم الرسومية، للحصول على أداء أفضل

والآن، دعونا نرى كيف تطور هذا الإطار بمرور الوقت.

تاريخ WPF

Windows 1.0 كانت أول بيئة واجهة مستخدم رسومية من Microsoftلقد عملت كطبقة فوق نظام التشغيل DOS، معتمدة على أنظمة GDI و USER للرسومات وواجهة المستخدم.

تم تقديم DirectX في عام 1995 كنظام رسومات عالي الأداء موجه للألعاب وغيرها من البيئات المتعلقة بالرسومات. وعلى مر السنين، صدرت العديد من الإصدارات، ووفر DirectX 9 مكتبة يمكن استخدامها مع كود .NET المُدار.

نسخة دبليو بي إف سنة الإصدار . صافي الإصدار نسخة فيجوال ستوديو شرح المميزات:
3.0 2006 3.0 لا يوجد الإصدار الأولي.
ومع ذلك، يمكن تطوير WPF باستخدام VS 2005.
3.5 2007 3.5 ضد 2008 التعديل والتحسينات في:
نموذج التطبيق، والربط، وعناصر التحكم، والمستندات، والتعليقات التوضيحية، وعناصر واجهة المستخدم ثلاثية الأبعاد.
3.5 SP1 2008 3.5 SP1 لا يوجد دعم شاشة البداية الأصلية. تحكم جديد في متصفح الويب، ودعم تظليل DirectX بكسل.
4.0 2010 4.0 ضد 2010 عناصر تحكم جديدة: التقويم، وشبكة البيانات، ومنتقي التاريخ. دعم اللمس المتعدد والتعديل.
4.5 2012 4.5 ضد 2012 بدء تشغيل أسرع، وأداء محسّن عند عرض مجموعات البيانات الكبيرة.
عنصر تحكم جديد في الشريط وواجهة INotifyDataErrorInfo للتحقق من صحة البيانات.
4.5.1 2013 4.5.1 ضد 2013 تحسينات طفيفة في الأداء والموثوقية.
4.5.2 2014 4.5.2 NA لا يوجد تغيير كبير
4.6 2015 4.6 ضد 2015 دعم نافذة الطفل الشفافة
تحسينات HDPI واللمس
4.8 2019 4.8 ضد 2019 الإصدار الرئيسي الأخير من إطار عمل .NET، مع إصلاحات عالية الدقة وتحسينات في إمكانية الوصول.
.NET Core 3.0 وما بعده 2019 إلى الوقت الحاضر .NET Core 3.0 إلى .NET 10 مقابل 2019/2022 أصبح WPF مفتوح المصدر ويأتي مع .NET الحديث (تبقى التطبيقات Windows-فقط).

لم يعد يتم إصدار إصدارات WPF بشكل منفصل عن .NET. منذ عام 2019، تم شحنها كمكون مفتوح المصدر لمنصة .NET الحديثة، والإصدار الحالي مضمن في .NET 10، الذي صدر في نوفمبر 2025 كإصدار دعم طويل الأمد (LTS).

مميزات برنامج WPF

يُظهر الرسم البياني أدناه تجميعًا لإمكانيات WPF الرئيسية، والمدرجة بالتفصيل بعد ذلك.

مميزات برنامج WPF
مميزات برنامج WPF
  • الوثائق والطباعة
  • الأمان وإمكانية الوصول والتعريب
  • يوفر إمكانية التشغيل المتبادل مع Windows ضوابط النماذج
  • يُستخدم Direct3D في التطبيقات الرسومية حيث يكون الأداء مهمًا
  • يستخدم أجهزة بطاقة الفيديو للعرض
  • تتيح لك الرسومات المتجهة توسيع نطاق تطبيقك دون فقدان الجودة
  • يدعم WPF نظام البكسل المنطقي ذو الفاصلة العائمة ولون ARGB ذو 32 بت
  • إعادة تعريف الأنماط وقوالب التحكم
  • بناء الخطوط الدولية من الخطوط المركبة
  • تستفيد تقنية عرض النصوص في WPF من تقنية ClearType
  • يتيح لك استخدام تقنية التخزين المؤقت للنص المعروض مسبقًا في ذاكرة الفيديو
  • نهج قائم على الموارد لكل عنصر تحكم
  • تتم تهيئة مؤقتات العرض التقديمي وإدارتها بواسطة WPF
  • يتم أيضًا دعم العلاقة بين الفيديو والرسوم المتحركة
  • في WPF، النمط عبارة عن مجموعة من الخصائص التي يجب تطبيقها على المحتوى المستخدم في العرض المرئي.
  • تساعدك القوالب في WPF على تغيير واجهة المستخدم الخاصة بمستندك
  • الأوامر أكثر وضوحًاtracونسخة الأحداث المترابطة بشكل فضفاض
  • يؤدي دعم WPF للأوامر إلى تقليل كمية التعليمات البرمجية التي نحتاج إلى كتابتها

التالي في هذا WPF البرنامج التعليمي C #سنتعرف على أنواع وبنية WPF الأساسية.

أنواع WPF الأساسية والبنية التحتية

تنقسم الفئات في WPF إلى أربعة أنواع مختلفة:

  • UIElement
  • الإطار
  • ContentElement
  • FrameworkContentElement

تُعرف هذه الفئات باسم فئات العناصر الأساسية. وهي توفر الأساس لنموذج تكوين واجهات المستخدم.

تتألف واجهات مستخدم WPF من عناصر مُجمّعة في تسلسل هرمي شجري يُسمى شجرة العناصر. تُعدّ شجرة العناصر طريقةً بديهيةً لتصميم واجهات المستخدم، وهي البنية التي تُتيح الحصول على خدمات واجهة مستخدم قوية.

XAML

لغة ترميز التطبيقات القابلة للتوسيع، والتي تسمى "XAML" (تنطق "زامل")، هي طريقة تصريحية لتحديد واجهات المستخدم.

فيما يلي تعريف XAML لزر بسيط:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

مزايا استخدام لغة XAML:

  • يفصل XAML مظهر الواجهة الأمامية عن منطق الواجهة الخلفية
  • XAML هي الطريقة الأسهل لتمثيل واجهات المستخدم
  • يعمل XAML بكفاءة مع أدوات التصميم

طرق المكافحة

يدعم إطار عمل WPF العديد من عناصر التحكم المفيدة مثل:

  • عناصر التحكم في التحرير مثل النصBox، التحقق منBox، زر الراديو
  • عناصر التحكم في القائمة مثل القائمةBox، عرض القائمة، عرض الشجرة
  • معلومات المستخدم مثل Label وWPF ProgressBar وToolTip
  • إجراءات مثل القائمة والزر وشريط الأدوات
  • المظاهر مثل Border وWPF Image وViewbox
  • مربعات الحوار الشائعة مثل OpenFileDialog و PrintDialog
  • حاويات مثل TabControl و ScrollBar و GroupBox
  • تخطيطات مثل DockPanel و StackPanel و Grid
  • التنقل مثل الإطار والارتباط التشعبي

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

مظهر

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

تتيح لك ميزة الأنماط توحيد مظهر محدد للمنتج بأكمله. يسمح لك باستبدال المظهر الافتراضي مع الاحتفاظ بسلوكه الافتراضي.

يُتيح لك قالب البيانات التحكم في طريقة عرض البيانات المرتبطة افتراضيًا. وباستخدام السمات، يمكنك بسهولة تطبيق أنماط العرض الخاصة بنظام التشغيل.

التخطيط واللوحات

يساعدك التخطيط في تحديد الموضع والحجم المناسبين لعناصر التحكم، وهو جزء من عملية تصميم واجهة المستخدم. يُسهّل إطار عمل WPF عملية التخطيط ويُوفر مرونة أكبر في مظهر واجهة المستخدم.

تُقدم بنية التخطيط من خلال خمس فئات رئيسية: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid و 5) Canvas

رسومات

يوفر WPF نظام رسومات محسّن:

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

الوثائق والطباعة

يوفر إطار عمل WPF ثلاثة أنواع من المستندات:

  • الوثائق الثابتة: هذا النوع من المستندات يدعم WYSIWعرض YG.
  • وثائق التدفق: يتيح لك ضبط المحتوى وإعادة تدفقه بناءً على متغيرات وقت التشغيل مثل حجم النافذة ودقة الجهاز.
  • مستندات XPS: تمثيل مُرقّم للورق الإلكتروني بتنسيق قائم على لغة XML. XPS هو تنسيق مستند مفتوح ومعياري.

تتيح WPF تحكمًا أفضل في نظام الطباعة، بما في ذلك الطباعة عن بُعد وقوائم الانتظار. علاوة على ذلك، يمكن طباعة مستندات XPS مباشرةً دون تحويلها إلى تنسيق طباعة.

بعد أن غطينا العناصر الأساسية، دعونا نرى كيف تتكامل هذه الأجزاء داخليًا.

برنامج الأغذية العالمي Architecture

WPF جزء من إطار عمل .NET. يحتوي على كلٍ من التعليمات البرمجية المُدارة وغير المُدارة. يوضح الشكل أدناه المكونات الرئيسية لبنية WPF:

برنامج الأغذية العالمي Architecture

برنامج الأغذية العالمي Architecture

مكونات بنية WPF

  • PresentationFramework: يساعدك على إنشاء عناصر من المستوى الأعلى مثل عناصر التحكم والأنماط والتخطيط والنوافذ وما إلى ذلك.
  • PresentationCore: يحتوي على أنواع أساسية مثل UIElement و Visual، والتي يتم اشتقاق جميع عناصر التحكم والأشكال في PresentationFramework.dll منها.
  • CLR: يجعل عملية التطوير منتجة من خلال تقديم ميزات مثل إدارة الذاكرةومعالجة الأخطاء وما إلى ذلك.
  • ميلكور: يعد Milcore جزءًا من التعليمات البرمجية غير المُدارة التي توفر تكاملًا وثيقًا مع DirectX.
  • دايركت: إنها واجهة برمجة التطبيقات منخفضة المستوى التي تقوم بعرض رسومات WPF. يتفاعل DirectX مع برامج التشغيل ويعرض المحتوى.
  • المستخدم 32: هي واجهة برمجة تطبيقات أساسية تُستخدم على نطاق واسع في العديد من البرامج. تُدير هذه الواجهة الذاكرة وفصل العمليات. تُساعدك User32 في تحديد مكان كل عنصر على الشاشة.
  • نواة: ينشأ الإدخال كإشارة على برنامج تشغيل جهاز في وضع النواة، ويتم توجيهه إلى العملية الصحيحة عن طريق الاتصال بـ Windows النواة وUser32.

ربط البيانات في WPF

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

<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />

يدعم WPF أربعة أوضاع ربط:

  • طريقة واحدة: يتم تحديث عنصر التحكم عند تغيير بيانات المصدر
  • ثنائي الاتجاه: تتدفق التغييرات في كلا الاتجاهين بين التحكم والمصدر
  • مرة واحدة: يقرأ عنصر التحكم قيمة المصدر مرة واحدة فقط، عند وقت التحميل.
  • OneWayToSource: يقوم عنصر التحكم بدفع قيمته إلى المصدر، وليس العكس أبدًا.

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

💡 نصيحة: قم بتطبيق واجهة INotifyPropertyChanged على فئات البيانات الخاصة بك. بدونها، لن يتم تحديث واجهة المستخدم عند تغيير قيم الخصائص في الكود.

تركيب دبليو بي إف

قم بالرجوع إلى هذا الرابط لتثبيت WPF: https://www.guru99.com/download-install-visual-studio.html

في الجزء التالي من هذا الدرس التعليمي لتطبيقات WPF، سنقوم ببناء أول تطبيق WPF لنا.

كيفية إنشاء أول تطبيق WPF الخاص بك؟

في هذا المثال الخاص بـ WPF، سنقوم بتطوير تطبيق WPF أساسي. لذا، لنبدأ بالتنفيذ البسيط باتباع الخطوات الموضحة في مثال تطبيق WPF أدناه.

الخطوة 1) في Visual Studio، انتقل إلى ملف > جديد > مشروع

قائمة ملفات Visual Studio تعرض خيار مشروع جديد

الخطوة 2) في نافذة المشروع الجديد

  1. حدد تطبيق WPF
  2. أدخل الاسم باسم "MyWPF"
  3. انقر OK

نافذة مشروع جديدة مع تحديد قالب تطبيق WPF

الخطوة 3) يقوم Visual Studio بإنشاء ملفين بشكل افتراضي

  • ملف XAML (MainWindow.xaml)
  • ملف CS (MainWindow.xaml.cs)

يعرض مستكشف الحلول ملفي MainWindow.xaml و MainWindow.xaml.cs

يحتوي MainWindow.xaml على

  1. نافذة التصميم
  2. ملف XAML

نافذة تصميم MainWindow.xaml ومحرر XAML في Visual Studio

في نافذة XAML، يتم كتابة العلامات التالية افتراضياً:

تم إنشاء علامات XAML الافتراضية لنافذة WPF جديدة

الشبكة هي العنصر الأول افتراضيًا.

يحتوي ملف MainWindow.xaml.cs على الكود البرمجي المقابل لملف تصميم XAML:

ملف الكود البرمجي MainWindow.xaml.cs الخاص بنافذة WPF

الخطوة 4) في صندوق الأدوات،

  1. اسحب النصBox عنصر في نافذة التصميم
  2. نصBox سيظهر في نافذة التصميم
  3. سترى رمز XAML للنصBox وأضاف

سحب نصBox من صندوق الأدوات إلى نافذة تصميم WPF

الخطوة 5) غيّر النص إلى "برنامج WPF الأول".

تحرير النصBox خاصية النص لبرنامج WPF الأول

الخطوة 6) انقر فوق زر ابدأ

زر بدء تشغيل Visual Studio لتشغيل تطبيق WPF

الخطوة 7) سترى نافذة في المخرجات

نافذة تطبيق WPF قيد التشغيل تعرض نص برنامج WPF الأول

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

WPF مقابل WinForms

برنامج الأغذية العالمي WinForms
إنه إطار عمل أحدث، لذا فهو أكثر انسجامًا مع المعايير الحالية. إنه أقدم، لذا فهو أكثر تجريبًا واختبارًا.
إنه مرن وغني بالميزات. يمكنك تصميم تطبيقات متطورة للغاية دون الحاجة إلى كتابة أكواد أو شراء عناصر تحكم. ليست غنية بالميزات
المطورين 3rd تركز عناصر التحكم الخاصة بالطرفية على التوافق مع WPF لأنه يمثل المستقبل. هناك العديد من عناصر التحكم التابعة لجهات خارجية والتي يمكنك شراؤها أو الحصول عليها مجانًا.
تتيح لك لغة XAML إنشاء واجهة المستخدم الرسومية وتعديلها بسهولة. كما تسمح بتقسيم العمل بين المصمم (XAML) والمبرمج (C#، VB.NET، إلخ). In Windows في النماذج، تتم كتابة جميع التعليمات البرمجية في مكان واحد.
تنتقل مهارات XAML مباشرة إلى أطر العمل الأحدث مثل WinUI 3 و .NET MAUI و Avalonia UI. تنطبق مهارات WinForms بشكل أساسي على الإصدارات الكلاسيكية Windows تطوير تطبيقات سطح المكتب.
مجموعة التحكم الموجودة في صندوق WPF محدودة تعتبر عناصر التحكم الموجودة في الصندوق قوية جدًا

نوع التطبيقات المبنية باستخدام WPF

  • يُستخدم WPF للبرامج المستقلة Windows تطبيقات سطح المكتب مثل أدوات إدارة الأعمال المؤسسية، ولوحات المعلومات، ومحطات التداول، وبرامج التصميم
  • Windows يمكن أن تتواجد النماذج وصفحات WPF في نفس التطبيق
  • يمكنك تطوير تطبيقات بنمط التنقل بين الصفحات/النوافذ

WPF في .NET الحديث

Microsoft تم طرح WPF كمصدر مفتوح في ديسمبر 2018، ومنذ .NET Core 3.0 (2019) تم شحن الإطار مع كل إصدار حديث من .NET، وصولاً إلى .NET 10. إن نقل تطبيق إلى .NET الحديث يوفر بدء تشغيل أسرع، ونشرًا أبسط من خلال النشر الذاتي، والوصول إلى ميزات لغة C# الحالية، بينما يظل نموذج برمجة WPF كما هو.

لا يزال WPF Windows-فقط. إذا كنت بصدد اختيار إطار عمل لسطح المكتب اليوم، فإن هذه المقارنة ستساعدك:

الإطار أفضل من أجل
برنامج الأغذية العالمي ناضج، غني بالميزات Windows تطبيقات سطح المكتب ذات نظام بيئي ضخم
نظام WinUI 3 تطبيقات جديدة تستهدف العصر الحديث Windows 11 المظهر والشعور
NET MAUI تطبيقات متعددة المنصات تشمل Windows, macOS, Androidو iOS

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

الأسئلة الشائعة

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

لا، يعتمد WPF على DirectX و Windows واجهات برمجة التطبيقات، لذلك فهي تعمل فقط على Windowsلتطوير تطبيقات XAML متعددة المنصات، ضع في اعتبارك واجهة مستخدم أفالونيا or NET MAUI.

نعم. أدوات مثل مساعد الطيار جيثب يمكن إنشاء تخطيطات XAML وتعبيرات الربط والأنماط من التعليقات، مما يسرع عملية التعلم ويقلل من الترميز المتكرر للمبتدئين.

يمكنك دمج ML.NET للحصول على خدمات التعلم الآلي المحلية أو الاتصال بخدمات الذكاء الاصطناعي السحابية مثل Azure قم بتشغيل OpenAI من كود C# الخاص بك، ثم اعرض النتائج من خلال ربط البيانات القياسي لـ WPF.

نعم. WPF مفتوح المصدر بموجب ترخيص MIT، ويمكنك إنشاء تطبيقات مجانًا باستخدام Visual Studio Community Edition.

تلخيص هذه التدوينة بـ: