الخلاصة:ويندوزXP له تنسيق و شكل خاص و مميز يختلف كلياً عن الإصدارات القديمة.
السؤال الذي يطرح نفسه: كيف استطيع انشاء أدوات تحكم ببرنامج بنفس التنسيق ؟ كل هذاتستطيع عمله باعداد ملف مصدري و بعض الأمور الأخرى. الدرس يتكلم عن كيفية دمج تنسيق الويندوز بالبرنامج المراد عمله بـC#.NETأوVB.NET
ملاحظة:هذه الخصائص التي تشرح بالدرس تطبق فقط على البرامج التي تشتغل تحت نظام ويندوزXP فقط!
البداية
سوف نشاهد الفروقات بين التطبيق قبل الإعداد و التطبيق بعد استخدام الدرس عليه:
نشاهد التطبيق بالشكل القديم تحت نظام ويندوز XP.
نشاهد التطبيق بالشكل الجديد تحت نظام ويندوز XP.
كيف يشتغل التطبيق ؟
أدوات التحكم تأخذ تنسيق ويندوزXP حالما تم تغيير تنسيق الويندوز. و نعتمد بالدرس علىالإصدار السادس ( 6 ) منComctl32.dll. و هنا جميع أدواتالتحكم التي سوف يتم تغيير شكلها حالما يكونComctl.dllموجود و بالإصدار السادس:
• TextBox control |
• ListView control |
• RichTextBox control |
• TreeView control |
• HScrollBar control |
• DateTimePicker control |
• VScrollBar control |
• MonthCalendar control |
• ProgressBar control |
• Splitter control |
• TabControl control |
• TrackBar control |
• MainMenu control |
• StatusBar control |
• ContextMenu control |
• ToolBar control |
• ComboBox control |
• TreeView control |
• DataGrid control |
• ListView control |
• ListBox control |
|
بالنسبة لأدوات التحكم الأخرى التي نستخدمها من: System.Windows.Forms.ButtonBase( مثل: Button,RadioButton,GroupBoxandCheckBox) فلها خاصية الـ FlatStyleو هذه الخاصية ترسم أدوات التحكم بالطرق التالية:
الوصف |
قائمة الأعضاء |
أداة التحكم تكون مسطحة |
Flat |
أداة التحكم تكون مسطحة و عندما تقع الفارة على الأداة تصبح ثلاثية الأبعاد |
Popup |
أداة التحكم تكون ثلاثية الأبعاد |
Standard |
أداة التحكم تظهر على حسب ثيم الويندوز |
System |
أدوات التحكم التي سوف تغير بواسطة وضع الـ FlatStyleإلى Systemو هي: Buttoncontrol,RadioButton control,CheckButton control andGroupBoxcontrol أما بالنسبة لأدوات التحكم التى سوف تظهر بنفس التنسيقLabelcontrol,LinkLabel control,DomainUpDowncontrol,NumericUpDowncontrol,CheckedListBoxcontrol.
ملف Manifestهو الأفضل
إذا تود بأن يكون تطبيقك يكون شبية بتنسيق ويندوز، فيجب عليك إضافة ملف Manifestالذي يعتمد على Comctl32.dllبالإصدار السادس ( 6 ). ملف Manifestهو عبارة عن XML fileمدمج بتطبيقك كملف مصدري. لكي تستخدم تنسيق ويندوز XPعلى تطبيقك فأنت تحتاج إلى:
- وضع جميع أدوات التحكم التى تملك القيمة FlatStyle إلى الخاصية التالية FlatStyle.System.
- انشاء ملف Manifest لربط برنامج بالملف Comctl32.dll.
- اضافة الملف المصدري للبرنامج التنفيذي.
إضافة التنسيقلأدوات التحكم
أفضلطريقة لتعلم كيفية إضافة التنسيق هو التطبيق العملي للدرس، في هذا الدرس سوف تقوم بـ :
- وضع جميع أدوات التحكم التى تملك القيمة FlatStyle إلى الخاصية التالية FlatStyle.System.
- انشاء ملف Manifest لربط برنامج بالملف Comctl32.dll.
- اضافة الملف المصدري للبرنامج التنفيذي.
الآن سوفنبدأ، أولاً قم بإنشاء مشروع Windows Application اختار احدى اللغتينC#.NETأوVB.NETبعد ذلك اتبعالخطوات التالية:
- من صندوق الأدوات ToolBox أضف أدوات تحكم الى المساحة الخالية ( Button control, RadioButton control, ProgressBar control and TrackBar control )
- قم باعطاء Button control, RadioButton control القيمة FlatStyle الخاصية System.
- قم بالضغط مرتين على الزر Button control لإضافة ،Click event handler البرنامج سوف يقوم بفتح صفحة تحرير البرنامج .
- أضف الكود التالي لإعطاء قيمة للـ ProgressBar لكي ترى العداد و هو يتحرك.
' Visual Basic Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ProgressBar1.Value = 50 End Sub
// C# private void button1_Click(object sender, System.EventArgs e) { progressBar1.Value = 50; } |
- من القائمة الرئيسية Build، اختار Build your solution.
- من القائمة الرئيسية File ، اختار Save All لحفظ العمل.
انشاء ملف Manifest
- من القائمة الرئيسية File، اختار Add و من ثم New Item.
- سوف يظهر لك نافذة New Item، اختار منها Text File و قم تسمية الملف بـ exe.manifest.اسم المشروع ( مثلاً: WindowsApplicationProject.exe.manifest ) و بعد ذلك قم بالضغط على Open لتأتي لك صفحة فارغة لتكتب بداخلها التالي:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Winweb.<Executable Name>"
type="win32"
/>
<description>.NET control deployment tool</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly> |
- يجب عليك أن تنسخ هذا الكود إلى المفكرة و بعد ذلك نسخة الى المشروع.
- ملاحظة: يجب هنا كتابة اسم المشروع.
- من القائمة الرئيسية Build، اختار Build your solution.
- من القائمة الرئيسية File، اختار Save All لحفظ ملف XML.
نسخ ملف Manifest لمجلد البرنامج التنفيذي
الآن يجب عليك نسخ الملفManifest من المجلد الرئيسي إلى مجلد البرنامج التنفيذي و لنقل الملف اتبع التالي:
- اذهب للمجلد الرئيسي للمشروع، و قم بنسخ ملف Manifest.
- اذهب إلى المجلد obj و من بعد ذلك اذهب للمجلد Debug أو Release ( يختلف من إصدار إلى آخر ) و سوف تجد البرنامج التنفيذي.
- الصق ملف Manifest إلى مجلد البرنامج التنفيذي.
اضاقة ملف Manifestللبرنامج التنفيذي
ايضاً، قم بفتح البرنامج التنفيذي عن طريق Visual Studio و اضافة ملف Manifest كملف مصدري، و لإضافة الملف اتبع التالي:
- من القائمة الرئيسية File، اختار Open و منها اختار File.
- اذهب عبر النافذة إلى مجلد البرنامج التنفيذي و قم بفتح البرنامج التنفيذي ( ProjectName.exe ).
- اضغط بالزر اليمين للفارة و قم باختيار Add Resource. و اختار من النافذة Import.
- قم باختيار ملف Manifest ( المنقول إلى مجلد البرنامج الرئيسي ).
ملاحظة: لمشاهدة الملف من النافذة، اختار من القائمة المنسدلة All Files لتستطيع اختيار ملفManifest من القائمة.
- الآن سوف يظهر لك مربع Resource Type، قم بكتابة RT_MANIFEST و اضغط على زر OK.
- من نافذة الخصائص Properties Window، اختار ID Properties تساوي 1.
الآن قم بحفظ المشروع كاملاً.Save All من قائمة File.
النهاية
- أدوات التحكم تظهر بتنسيق ويندوز XP بجميع الوانه.
- تستطيع تعديل أدوات التحكم لتظهر بمظهر و تنسيق ويندوز XP.
- بعض أدوات التحكم، تحتاج إلى اصدار مخصص من ملف Comctl32.dll. للبعض الآخر تحتاج إلى تعديل بسيط على القيمة FlatStyle. و اخيراً، البعض الآخر لا يحتاج إلى اي تعديل خارجي عليها.
ساحة النقاش