منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم البرمجة بتقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=86)
+---- قسم : قسم دورات تقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=87)
+---- الموضوع : [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF (/showthread.php?tid=3212)

الصفحات: 1 2


[WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - الشاكي لله - 16-06-14

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

والصلاة والسلام على اشرف الخلق محمد وعلى اله الطيبين الطاهرين


--


نرحب بكم اخواننا الاعزاء في اول موضوع من مواضيع دورة [WPF حتى الاحتراف]

وهي الدورة الاولى من نوعها التي ستتطرق لجميع مايخص WPF ان شاء الله

بدأ بالاساسيات والتعامل مع قواعد البيانات والانماط وغيرها من الامور التي ستكون مفهرسة في موضوع منفرد لاحقا

بالنسبة لنظام الشرح في هذه الدورة ، فأنا سأعتمد على نفس نظامي القديم في الشرح + في بعض الدروس ساقوم برسم WorkFlow ومخططات او SketchFlow للامثلة التي سيتم وضعها .

علما بان مرجع الدروس في هذه الدورة هو موقع wpftutorial وموقع MSDN .

نبدا معكم في اولى الدروس ، بسم الله ....









نظرة عامة


WPF هي تقنية رسومية من ابتكار شركة مايكروسوفت للبرمجيات ، حيث تعتبر هذه التقنية (الجيل الجديد) للواجهات الرسومية .

تم اصدار تقنية ال WPF في سنة 2006 في اصدار NET framework 3.0 وهي تعمل على الاصدار المذكور وعلى الاصدارات الاعلى .












كيف تتكون الواجهات المصممة بواسطة WPF


إن الواجهات التي يتم تصميمها بواسطة WPF تجمع بين 2D graphics, 3D graphics, documents and multimedia .. حيث ان محرك تصميم الواجهات اي المسؤول عن عملية الRendering ، يعتمد بشكل كبير على Graphic cards . وقد تم استغلال ذلك للحصول على سرعة كبيرة في الاستجابة عند الواجهات ، الحصول على Layout وتحجيمات بالاضافة الى الحصول على واجهات مناسبة لجميع الشاشات .



صورة 1.1 - المميزات الرئيسية لتقنية الWPF







الفصل بين الواجهات وبين الاكواد



إن احدى اهداف تقنية WPF ، هي الفصل بين الاكواد البرمجية التي تكون إما بلغة السي شارب او الفيجوال بيسك ، وبين سلوك وتصميم الواجهة ، حيث لايتطلب ان تتدخل لغة البرمجة لإجراء Animation مثلا او عمل Style او Action ، فكل هذا يمكن القيام به دون تدخل لغة البرمجة .


لذلك السؤال الي يطرح نفسه كيف يكون ذلك ؟؟؟


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

وهذه الغة بسيطة جدا وسيتم التعامل معها كثيرا في هذه الدورة ، ومع الدروس القادمة ستتقنها تلقائيا لسهولتها .








الدمج بين التركيبات والعناصر



في WPF يمكنك القيام بتضمين عناصر داخل عنصر ما ، وليكن ذلك العنصر عبارة عن Button :



كود الXAML المسؤول عن تكوين هذا الزر :-

PHP كود :
<Button>
    <
StackPanel Orientation="Horizontal">
        <
Image Source="speaker.png" Stretch="Uniform"/>
        <
TextBlock Text="Play Sound" />
    </
StackPanel>
</
Button


الزر اعلاه يتكون من 3 عناصر :
العنصر الاول : Stackpanel - حاوية
العنصر الثاني : Image - صورة
العنصر الثالث : TextBlock - مشابه للLabel


في الاساس العنصر الثاني والثالث تم احتضانهما داخل العنصر الاول الذي هو عبارة عن Container .


خلاصة القول .. انه يمكن دمج وادخال عناصر داخل عناصر اخرى بسهولة تامة ..
الشيئ الاخر الذي يستحق الذكر .. انه بالامكان عمل PlaySoundAction كي يعمل ملف صوتي عندما يتم الضغط على الزر ....


PHP كود :
        <Button>
            <
i:Interaction.Triggers>
                <
i:EventTrigger EventName="Click">
                    <
ei:PlaySoundAction Source="Vb4arb.wmv"/>
                </
i:EventTrigger>
            </
i:Interaction.Triggers>
            <
StackPanel Orientation="Horizontal">
                <
Image Source="speaker.png" Stretch="Uniform"/>
                <
TextBlock Text="Play Sound" />
            </
StackPanel>
        </
Button


وتذكر كل هذا ببساطة ودون تدخل لغة البرمجة .









قوة التصميم والجمالية



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

WPF قدمت لنا ميزتين رائعتين تمكنك من انشاء Skin للواجهة او للControl بكل سهوولة
كانك تشتغل مع الفوتوشوب ..

انهما Styling & Templates :


في الصورة اعلاه ، على اليسار يوجد الزر التقليدي القبيح
وعلى اليمين يوجد الزر نفسه بعد تطبيق عملية Styling له .



انظروا الى الجمالية الامحدودة ، الان يمكنك ان تحلم في واجهات معقدة امثال واجهة Norton :

بواسطة wpf يمكنك القيام بصنع هذا الشكل من الصفر في خلال ساعة واحدة وربما اقل بكل راحة وسهولة .


وكل هذا بواسطة ميزة Styling التي تندرج تحتها ميزة Tempting .









توافق الـResolution

احدى المشاكل التي كانت تواجهنا مع Windows forms والتي هي شائعة وتم طرح عدة استفسارات سابقة بخصوصها ، هي مشكلة اختلاف الدقة ( الـResolution ) بين الاجهزة ..

فالمبرمج المسكين عندما يقوم بتشغيل برنامجه على شاشة دقتها مختلفة عن الدقة التي صٌمم البرنامج عليها ، يلقى اختلاف في حجم الForm ..


مثال : مثلا لو صنعت برنامج على قياس شاشة 1024 × 768 وحاولت ان تشغله على قياس شاشة 800 × 600 فلن يظهر كامل البرنامج بل سيظهر نصفه او الجزء اليمين مأكول .. كما في الصورة :




كان الحل للبعض من المبرمجين هو استخدام دقة معينة (بالغالب 600) لتتوافق مع اكثر عدد ممكن من الشاشات ، او لجأ البعض الى تغيير دقة الشاشة بواسطة دوال API الا ان ذلك غير مستحسن ابدا .


--


لكن مع WPF منذ ان تم استخدام الDirectXكمحرك انتاج للواجهات ، تم حل هذه المشكلة ، فالبرنامج الذي يعمل بتقنية الWPF يحتوى على وحدات قياس منطقية اي ان الحسابات تكون بالمنطق وليست مبنية على مقارنات بالنظام الاحداثي (X,Y) ..

مما جعل الواجهات المصممة بهذه التقنية تعمل على كل الـResolution ، ولا تتاثر الواجهات ابدا وتظهر بحجمها الكامل .. حيث ان التقنية تتكفل باعادة تحجيم الفورم للحجم المناسب للشاشة وتحجيم كافة الElements ايضا .








ملاحظات :-

1- بدأ من الدروس القادمة سيتم اطلاق مصطلح Window بدل مصطلح Form
2- لاتقلق ان لم تفهم شيئ في هذا الدرس فدورتنا لازالت في البداية ولازال هناك الكثير
3- جميع التفاصيل التي ذكرت هنا سيتم شرحها في مواضيع منفصلة مع امثلة - لذلك لاتقلق .





تحياتي لكم والموضوع مفتوح للاستفسارات .....






انتهى



RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - hoob computer - 16-06-14

و عليكم السلام و رحمة الله و بركاته,

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

جزاك الله خيراً أخي محمد على ما تقدمه للمنتدى و اعضاءه. إلى الأمام Smile.


السلام عليكم.


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - الشاكي لله - 16-06-14

(16-06-14, 09:42 AM)hoob computer كتب : و عليكم السلام و رحمة الله و بركاته,

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

جزاك الله خيراً أخي محمد على ما تقدمه للمنتدى و اعضاءه. إلى الأمام Smile.


السلام عليكم.


عليكم السلام والرحمة ...


يسعدني مرورك ياغالي ، وبالفعل الدورة مخصصة للمبدأين او المتوسطين القادمين من Windows forms وتأخذ بيدهم حتى مستوى فاهم كل الاساسيات ويعرف كيف يبرمج

ويجب ان اقول ان الفن في التصميم والابداع له عامل كبير في WPF بجانب فهم اساسيات التقنية طبعا


ان شاء الله تستفيد جميعا مع هذه التقنية الرائعة


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - ali.alfoly - 16-06-14

الحمد لله اني اول مبتداء قام بالرد علي هذا الموضوع الجميل
بالفعل استفدت
بساطة في الطرح ودقة في الكلمات هذا ما اعتدناه منك اخي محمد
متعوب عليه
جزاك الله خيرا
احلي تقيم
متابع معك حتي الاحتراف


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - abulayth - 16-06-14

السلام عليكم

شكرا لك على هذا الدرس الرائع وان شاء الله يكون بداية لسلسلة من الدروس في هذا المجال

يعطيك العافية


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - مبرمج أوتار - 16-06-14

السلام عليكم ورحمة الله وبركاته

يسعدني الانضمام معك في دورة

اشكرك على درس الرائع استفدت منه بعض المعلومات المقدمة حول WPF

في انتظر باقي الدروس Heart


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - Sajad - 16-06-14

السلام عليكم

جزاك الله خيرا اخوي العزيز ان شاءالله نستفاد منك الكثير

موفق باذن الله يغالي

تحياتي لك


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - الشاكي لله - 17-06-14

شاكر لكم مروركم اخواني الاعزاء

وان شاء الله مابقصر معاكم ..


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - أبو الحسن - 18-06-14

جزاكم الله خيرا
بانتظار المزيد من الابداع


RE: [WPF حتى الاحتراف] {0} - نظرة عامة عن WPF - عبد الله - 21-06-14

وعليكم السلام ورحمة الله وبركاته

اشكرك أخي الشاكي لله ( لم تقل لنا اسمك ) على الشرح الرائع والواضح ، فعلاً شرحك كان واضح وسهل الإستيعاب.

يسرني الإنضمام للدورة.