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

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

الصفحات: 1 2


RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - السندبااد - 13-09-14

السلام عليكم ورحمة الله وبركاته
شكراً على هذا الدرس القيم ولكن لدي استفسار بسيط :
لو كنت أستخدم الستايل في أكثر من نافذة فبإمكاني أن أضعه في Application.xaml
بين الوسمتين :
PHP كود :
<Application.Resources>
</
Application.Resources
ولكن ما فائدة هذا الوسم :
PHP كود :
<ResourceDictionary>
</
ResourceDictionary
؟؟؟؟؟؟؟؟؟؟
وهذا مثال :
PHP كود :
<Application.Resources>
        <
ResourceDictionary>
            <
Style TargetType="TextBox" x:Key="Styletxt">
                <
Setter Property="HorizontalAlignment" Value="Left"/>
                <
Setter Property="Margin" Value="10,5,5,5"/>
                <
Setter Property="MinWidth" Value="200"/>
                <
Setter Property="MaxWidth" Value="250"/>
                <
Setter Property="FontWeight" Value="Bold"/>
            </
Style>
        </
ResourceDictionary>
    </
Application.Resources
لو حذفت من المثال السابق الوسم :
PHP كود :
<ResourceDictionary>
</
ResourceDictionary
فالستايل سيؤدي الغرض فما فائدة هذا الوسم إذن ؟ أكيد له وظيفة ما ؟



RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - الشاكي لله - 14-09-14

^

الـ ResourceDictionary هو مكان تضع فيه الResource

دعنا نشبه الResourceDictionary بملف ال(txt.)

نعرف ان ملف الtxt هو ملف يحتوي على نصوص في داخله فيمكنك رفعه وتوزيعه بسهولة جدا



نفس الشيئ للResourceDictionary هو ملف بصيغة (xaml.) يحتوي على اكواد الResource في داخله ويمكنك توزيعه واستعماله في مشاريع اخرى


شخصيا ، اعتبر ان الـ ResourceDictionary  له غرضين اساسيين :-
1- استقلالية اكواد الResource عن المشروع
2- تمكين خاصية الثيمات المتعددة في المشروع




شاهد هذه الصورة :-




يوجد في الصورة ثيمان الاول هو BlackTheme والاخر عبارة عن LightTheme
كل ثيم منهما عبارة عن ResourceDictionary فلو فتحنا الثيم المسمى (BlackTheme) لوجدنا التالي :-





لاحظ الصورة المتحركة :



لاحظ الكود الاول يستورد الResource الموجود في الResourceDictionary المسمى ب LightTheme
والكود الثاني يستورد الResource الموجود في الResourceDictionary المسمى ب BlackTheme





يعني لو في المستقبل قمت بعمل ثيمات للعناصر واشكال مميزة وحبيت تشاركه هنا في المنتدى
اين ستقوم بوضع اكووادك تبع  الTemplate والستايلات والشغلات هذي ؟؟؟

الجواب هو ، تضع كل اكوادك الResourceDictionary وترفعه لنا ^_^




--


وكيفية انشاء ملف الResourceDictionary سهلة جدا ، فقط زر يمين على المشروع وثم Add new Item واختر ResourceDictionary





--


اما بالنسبة لسؤالك الاصلي :

PHP كود :
<Application.Resources>
 
       <ResourceDictionary>
 
           <Style TargetType="TextBox" x:Key="Styletxt">
 
               <Setter Property="HorizontalAlignment" Value="Left"/>
 
               <Setter Property="Margin" Value="10,5,5,5"/>
 
               <Setter Property="MinWidth" Value="200"/>
 
               <Setter Property="MaxWidth" Value="250"/>
 
               <Setter Property="FontWeight" Value="Bold"/>
 
           </Style>
 
       </ResourceDictionary>
 
   </Application.Resources


إقتباس :فالستايل سيؤدي الغرض فما فائدة هذا الوسم إذن ؟ أكيد له وظيفة ما ؟



في الاساس Application.Resources هو حاوية للResource اصلا هههههههه
يعني ان وظيفتها نفس وظيفة الResourceDictionary


لكن الفرق هو كما تلاحظ في الاسم  : Application.Resources اي ان هذه الحاوية مرتبطة بالApplication الحالي

اما الResourceDictionary كما ذكرنا فهو حاوية مستقلة عن الApplication اي كأنها ملف خارجي


لذلك كودك في الاعلى لن يكون له اي تأثير لانك قمت فقط بادخال حاوية داخل حاوية اخرى وذلك لا يضر ولاينفع .





--



اسف على قلة التوضيح ، في الاساس حسيت نفسي عاجز عن شرح موضوع ResourceDictionary لك ـ ربما من التعب

وان شاء الله هذا الResourceDictionary راح يكون شغلنا الشاغل في الدروس المتقدمة من الباب الثالث (باب ال Appearance ) اوعدكم راح تصيرون دكاترة فيه هههههههه
ه





في امان الله



RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - السندبااد - 14-09-14

ما شاء الله تبارك الله
ردك كان بمثابة درس حقيقي عن ResourceDictionary والحمد لله قمت بتطبيقه ونجحت
فكرته رائعة فكما تفضلت تستقل أكواد الـ Resource عن المشروع ويصبح لدينا ثيمات متعددة نختار منها ما نريد
تحية لك يا ملك WPF Wink



RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - الشاكي لله - 14-09-14

ههههههه

والله يااخي انت رائع وتفهمها على الطاير


--

واي سؤال لاتتردد احنا حاضرين


RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - السندبااد - 15-09-14

الروعة فيما نشاهده من إبداعاتك
والبارحة راجعت هذا الدرس جيداً وكي أفيد وأستفيد
وضعت بالمرفقات مثالاً لكيفية اختيار ستايل ما من عدة استايلات موجودة بالـ ResourceDictionary
من الكومبو بوكس نختار الستايل ثم ننقر الزر تغيير الستايل
الأكواد بسيطة إن شاء الله



RE: [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource - عبد الله - 25-09-14

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

درس ولا أروع واظن انه أساس لبقية الدروس لأنه يضع المبرمج على قاعدة أساسية في صناعة الستايلات والعمل باحترافية اكثر.

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