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

ما هو 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 الرئيسية، والمدرجة بالتفصيل بعد ذلك.

- الوثائق والطباعة
- الأمان وإمكانية الوصول والتعريب
- يوفر إمكانية التشغيل المتبادل مع 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:
مكونات بنية 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، انتقل إلى ملف > جديد > مشروع
الخطوة 2) في نافذة المشروع الجديد
- حدد تطبيق WPF
- أدخل الاسم باسم "MyWPF"
- انقر OK
الخطوة 3) يقوم Visual Studio بإنشاء ملفين بشكل افتراضي
- ملف XAML (MainWindow.xaml)
- ملف CS (MainWindow.xaml.cs)
يحتوي MainWindow.xaml على
- نافذة التصميم
- ملف XAML
في نافذة XAML، يتم كتابة العلامات التالية افتراضياً:
الشبكة هي العنصر الأول افتراضيًا.
يحتوي ملف MainWindow.xaml.cs على الكود البرمجي المقابل لملف تصميم XAML:
الخطوة 4) في صندوق الأدوات،
- اسحب النصBox عنصر في نافذة التصميم
- نصBox سيظهر في نافذة التصميم
- سترى رمز XAML للنصBox وأضاف
الخطوة 5) غيّر النص إلى "برنامج WPF الأول".
الخطوة 6) انقر فوق زر ابدأ
الخطوة 7) سترى نافذة في المخرجات
تهانينا! لقد قمت بتصميم وإنشاء أول تطبيق 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 وربط البيانات والشجرة المرئية.









