منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : [WPF حتى الاحتراف] {4.2} - الـ Style ومنطقة الـResource
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته
شكراً على هذا الدرس القيم ولكن لدي استفسار بسيط :
لو كنت أستخدم الستايل في أكثر من نافذة فبإمكاني أن أضعه في 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
فالستايل سيؤدي الغرض فما فائدة هذا الوسم إذن ؟ أكيد له وظيفة ما ؟
^

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

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

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



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


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




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

[صورة مرفقة: oLmjC7N.png]


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

[صورة مرفقة: afRTAGh.png]



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



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





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

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




--


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

[صورة مرفقة: PttrUUJ.png]



--


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

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 ) اوعدكم راح تصيرون دكاترة فيه هههههههه
ه





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

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


--

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

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

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