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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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 حتى الاحتراف] {3.3} - اداة الـ Grid (/showthread.php?tid=3258)

الصفحات: 1 2


[WPF حتى الاحتراف] {3.3} - اداة الـ Grid - الشاكي لله - 21-06-14

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



--




ذكرنا في الموضوع السابق ان الGrid من المنظور العام يمكن اعتبارها كـ Panel عادية كالتي نستعملها مع الWindows Forms.

لكن من منظور الLayout فالـ Grid لها استخدام اخر ونمط معين لترتيب العناصر .



في جميع الاحوال ، يمكنك اعتبارها كـ Panel عادية ، بغض النظر عن وظيفتها كـ اداة للـLayout.



بسم الله..











اداة الـ Grid


اداة الـ Grid هي اداة من ادوات نظام الLayout ، وتستخدم لترتيب العناصر بشكل "جدول" اي انها تحتوي على Columns و Rows :




^صورة 1.1 : استخدام الGrid لعملLayout للعناصر











Rows & Columns



بما ان نظام الLayout في الGrid هو نظام جدولي ، فبطبيعة الحال لابد من وجود شيئ يسمى Columns وشيئ يسمى Rows ، وهذا شيئ طبيعي لاي جدول في العالم .


لكن عملية تحديد مساحات الخلايا التي تكونها الRows او الColumns ، تتم ب 3 طرق :
1- Star - تحديد مساحة الخلية بواسطة النسبة
2- Auto - تحديد مساحة الخلية بواسطة حجم العنصر
3- Fixed - تحديد مساحة الخلية بشكل ثابت






اولا : Star (*)

شاهد الصورة التالية :




في الصورة السابقة ، يوجد لدينا عمود واحد قام بتقسيم الGrid الى خليتين ..

هما الخلية رقم 1 والخلية رقم 2 .. تلاحظون في اعلى الخليتين وجود رقم وجنبه نجمة (10*) و (30*) ..


هذا يعني ان الخلية رقم 1 اخذت نسبة 10% من مساحة الGrid ، اما الخلية رقم 2 اخذت 30% من مساحة الGrid

هذا هو معنى النجمة فهي تقوم بتحديد مساحات الخلايا بشكل نسبي .



هذا يعني انه كل مازاد حجم الـGrid زادت مساحات الخلايا


ملاحظة : مااقوله ينطبق على الRows ايضا




--------------------





ثانيا : Auto

لما تحدد Auto ، يتم تحديد مساحة الخلية بناء على حجم العنصر التي تحتويه .



شاهد الصورة التالية :




في الصورة اعلاه : مساحة الخلية تساوي بالضبط عرض (width) الButton

هذا يعني ان مساحة الخلية تتغير بتغير حجم الbutton.





--------------------





ثالثا : Fixed

اضنها لاتحتاج الى توضيح ، فما عليك الا ان تحدد عدد الPixel ليتم تحجيم الخلية



شاهد الصورة التالية :-




هذا يعني انه مهما تغير حجم الـGrid لن تتغير مساحات الخلايا










كود XAML & Codebehind



في اغلب دروس هذه الدورة ستجدون هذا القسم الذي يتم فيه عرض كود XAML المسؤول عن تكوين العناصر وتبعياتها، والCode-behind لو حبيت تتعامل مع العناصر برمجيا .


شاهد الصورة التالية :-


^ ماتذكركم بلعبة X-O Big GrinTongue



المهم الكود المسؤول عن توليد هذا الGrid -
كود Xaml :

PHP كود :
<Grid Margin="0" HorizontalAlignment="Center" Width="338" VerticalAlignment="Center" Height="193">
            <
Grid.ColumnDefinitions>
                <
ColumnDefinition Width="5*"/>
                <
ColumnDefinition Width="5*"/>
                <
ColumnDefinition Width="5*"/>
            </
Grid.ColumnDefinitions>
            <
Grid.RowDefinitions>
                <
RowDefinition Height="5*"/>
                <
RowDefinition Height="7*"/>
                <
RowDefinition Height="5*"/>
            </
Grid.RowDefinitions>
        </
Grid



اما لو حبيت تتعامل مع الCode-behind المملConfused :-

سي شارب :
PHP كود :
Grid grid = new Grid();
 
ColumnDefinition col1 = new ColumnDefinition();
col1.Width GridLength.Auto;
ColumnDefinition col2 = new ColumnDefinition();
col2.Width = new GridLength(1,GridUnitType.Star);
 
grid.ColumnDefinitions.Add(col1);
grid.ColumnDefinitions.Add(col2); 


فيجوال بيسك:

PHP كود :
Dim grid As New Grid()

Dim col1 As New ColumnDefinition()
col1.Width GridLength.Auto
Dim col2 
As New ColumnDefinition()
col2.Width = New GridLength(1GridUnitType.Star)

grid.ColumnDefinitions.Add(col1)
grid.ColumnDefinitions.Add(col2










جرعات اضافية



في هذا القسم سأتكلم عن امور ثانوية لست ملزما باستعمالها ، لكن قد تفيدك في المستقبل .






Use GridSpilter


هذه الاداة توفر لك امكانية تحجيم الخلايا وقت الRuntime ، كما هو ظاهر في الصورة التالية :








--------------------





ShowGridLines Property

هذه الخاصية التابعة للGrid تقوم باظهار خطوط الGrid وقت الRuntime كما هو ظاهر في الصورة التالية :











فيديو قصير


في الاسفل تجدون فيديو قصير يشرح كيفية انشاء الGrid مع اضافة الRows + Columns مع شرح كيفية اضافة العناصر له .

















المهمة



مهمتكم اخواني الاعزاء في هذا الدرس هو عمل هذا النموذج باستعمال الGrid :






يالله ننتظر اعمالكم ..







انتهى





RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - Japan - 21-06-14

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



RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - kslawy - 21-06-14

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

الله يوفقك لإكمال هذه الدروس حتى الاحتراف Shy

أخي في شرح الفيديو لا يظهر الماوسSad ، ظهوره مهم لنعرف ما هو المكان الذي ضغطت عليه Wink


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - الشاكي لله - 21-06-14

(21-06-14, 07:15 PM)kslawy كتب : السلام عليكم ورحمة الله وبركاته

الله يوفقك لإكمال هذه الدروس حتى الاحتراف Shy

أخي في شرح الفيديو لا يظهر الماوسSad ، ظهوره مهم لنعرف ما هو المكان الذي ضغطت عليه Wink


اي والله صح مانتبهت

هذا لاني مصور على غير العادة ببرنامج snagit وليس camtasia ، هل تضن اني بحاجة الى اعادة تصوير الفيديو او يمشي الحال .؟؟؟


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - الشاكي لله - 21-06-14

(21-06-14, 12:36 PM)Japan كتب : السلام عليكم ورحمة الله و بركاته
شكرا جزيلا على هذه الدروس الرائعة
امد الله في عمرك و زاد من علمك استاذنا القدير
الملف في المرفقات


رائع جدا باين ان عندك ذوق في التصميم ..



لكن عندي ملاحظتين :-

الملاحظة الاولى انك استخدمت star للعمود الاول الذي يحتوي على الTextbox لهذه جرب تكبر الWindow ـ بتلاقي الtext يكبر معاها بعد ، وهذا الامر غير محبذ ، افضل شيئ لهذا الموقف هو استعمال Auto

الملاحظة الثانية :- استخدام Textbox ، هذا خطا فادح ، التيكست بوكس كما عرفناها نستعملها لادخال البيانات من المستخدم ، ولبس لعرض النصوص!!


البديل هو استخدام اداة الLabel او الTextblock وانا افضل الاخيرة لانها اخف .



RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - VanToM - 22-06-14

بارك الله فيك وجعله في ميزان حسناتك يا غالي Heart
والله دروسك اكثر من رائعة ومفيده جداً ومفهومه Smile
تطبيقي بالمرفقات Wink


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - hoob computer - 22-06-14

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

دروس ممتعة جداً و مفيدة اكثر, حتى بالنسبة لي (كمبرمج بهذه التقنية WPF) لا أستخف بهكذا دروس, هنالك امور ربما لا نلاحظها اثناء برمجتنا للبرامج.
لكن, هكذا مقالات و دروس مفيدة و لو كانت بدائية لكنها مفيدة جداً.
فإن الأساسيات مهمة جداً في البرمجة Smile

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


السلام عليكم


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - عبد الله - 23-06-14

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

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

[attachment=2055]


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - Sajad - 23-06-14

السلام عليكم

بارك الله فيك اخونا الغالي جزاك الله خيرا

تحياتي


RE: [WPF حتى الاحتراف] {3.3} - اداة الـ Grid - الشاكي لله - 23-06-14

بارك الله فيكم اخواني

ان شاء الله اليوم درسنا 3.4 الي بكون عن stackpanel