21-10-12, 01:20 PM
كاتب الموضوع : المخلب الجارح
السلام عليكم ورحمة اللهاليوم سوف نتعلم كيفية انشاء مشاريع WPF تمتلك ميزة تعدد لغات العرض
قم بانشاء مشروع WPF Application جديد
الان وفي النافذة Solution Explorer قم بانشاء مجلد جديد وقم بتسميتة Lang
الان قم بالضغط على المجلد بزر الماوس الايمن وقم باختيار االعنصر Add
ومن القائمة الفرعية Add قم باختيار Resource Dictionary وقم بتسميتة Ar
سوف يتم اضافة ملف Resource Dictionary الى مشروعك وسيتم فتحة وسيحتوي على هذا الكود
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]ResourceDictionary xmlns[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]x[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml"[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
الان قم باضافة Namespace جديد واجعل اسمة system وليكن للتفرع System
سيكون كود الملف Ar.xaml بعد اضافة namespace
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]ResourceDictionary xmlns[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]x[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]system[/color][color=#007700]=[/color][color=#dd0000]"clr-namespace:System;assembly=mscorlib"[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
الان وفي الجزء Content الخاص بالملف Ar.xaml قم بكتابة الكود التالي
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]system[/color][color=#007700]:[/color][color=#0000bb]String x[/color][color=#007700]:[/color][color=#0000bb]Key[/color][color=#007700]=[/color][color=#dd0000]"btnLang"[/color][color=#007700]>[/color][color=#0000bb]العربية[/color][color=#007700]</[/color][color=#0000bb]system[/color][color=#007700]:[/color][color=#0000bb]String[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
وسيكون كود الملف بشكل مكتمل بهذا الشكل
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]ResourceDictionary xmlns[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]x[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]system[/color][color=#007700]=[/color][color=#dd0000]"clr-namespace:System;assembly=mscorlib"[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]system[/color][color=#007700]:[/color][color=#0000bb]String x[/color][color=#007700]:[/color][color=#0000bb]Key[/color][color=#007700]=[/color][color=#dd0000]"btnLang"[/color][color=#007700]>[/color][color=#0000bb]العربية[/color][color=#007700]</[/color][color=#0000bb]system[/color][color=#007700]:[/color][color=#0000bb]String[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
والان نتعرف على الكود قمنا باضافة متغير من نوع String اسمة btnLang
وقيمتة (العربية)
الان ومن نافذة Solution Explorer نقوم بنسخ الملف Ar.xaml بالضغط علية بزر الماوس الايمن واختيار Copy ومن ثم تحديد المجلد Lang والضغط علية بزر الماوس
الايمن واختيار Paste
كما موضح بالصور
بعدها نقوم باعاده تسمية الملف Copy of Ar.xaml ليكن اسم الملف En.xaml
بعدها نقوم بالضغط دبل كليك على الملف En.xaml ليتم فتح الكود ونقوم بتعديل بسبط في الكود سوف نقوم بتعديل قيمة المتغير btnLang لتكون قيمتة الجديدة (English)
<system:String x:Key="btnLang">English</system:String>
الان نقوم بالضغط دبل كليك على الملف Application.xaml ليتم فتح الكود ونقوم باضافة الكود التالي بعد الوسم <Application.Resources>
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]ResourceDictionary[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]ResourceDictionary Source[/color][color=#007700]=[/color][color=#dd0000]"Lang/Ar.xaml" [/color][COLOR=#007700]/>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
ليكن الكود الكامل للملف Application.xaml بهذا الشكل
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]Application x[/color][color=#007700]:Class=[/color][COLOR=#dd0000]"Application"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
[/COLOR][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]x[/color][color=#007700]=[/color][COLOR=#dd0000]"http://schemas.microsoft.com/winfx/2006/xaml"
[/COLOR][color=#0000bb]StartupUri[/color][color=#007700]=[/color][color=#dd0000]"Window1.xaml"[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]Resources[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]ResourceDictionary[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]ResourceDictionary Source[/color][color=#007700]=[/color][color=#dd0000]"Lang/En.xaml" [/color][COLOR=#007700]/>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]ResourceDictionary[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]Resources[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]Application[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
وشرح الكود هو اننا قمنا باعلام البرنامج اتخاذ محتويات En.xaml كمورد افتراضي للمشروع
والان الخطوة الاخيرة اذهب الى النافذة Window1.xaml وقم باضافة Button
واجعل ال Content الخاص به يساوي Content="{DynamicResource btnLang}"
ثم قم بالضغط على Button دبل كليك للدخول الى نافذة الكود وفي حدث الضغط على Button قم باضافة الكود التالي
كود :
[color=#000000][COLOR=#0000bb] [/color][color=#007700]If [/color][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]FlowDirection [/color][color=#007700]= [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]FlowDirection[/color][color=#007700].[/color][COLOR=#0000bb]LeftToRight Then
Me[/COLOR][color=#007700].[/color][color=#0000bb]FlowDirection [/color][color=#007700]= [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]FlowDirection[/color][color=#007700].[/color][COLOR=#0000bb]RightToLeft
Dim ur [/COLOR][color=#007700]As New [/color][color=#0000bb]Uri[/color][color=#007700]([/color][color=#dd0000]"lang/Ar.xaml"[/color][color=#007700], [/color][color=#0000bb]UriKind[/color][color=#007700].[/color][color=#0000bb]Relative[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim rs [/color][color=#007700]As New [/color][COLOR=#0000bb]ResourceDictionary
rs[/COLOR][color=#007700].[/color][color=#0000bb]Source [/color][color=#007700]= [/color][COLOR=#0000bb]ur
Application[/COLOR][color=#007700].[/color][color=#0000bb]Current[/color][color=#007700].[/color][color=#0000bb]Resources[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#0000bb]rs[/color][COLOR=#007700])
Else
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]FlowDirection [/color][color=#007700]= [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]FlowDirection[/color][color=#007700].[/color][COLOR=#0000bb]LeftToRight
Dim ur [/COLOR][color=#007700]As New [/color][color=#0000bb]Uri[/color][color=#007700]([/color][color=#dd0000]"lang/En.xaml"[/color][color=#007700], [/color][color=#0000bb]UriKind[/color][color=#007700].[/color][color=#0000bb]Relative[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim rs [/color][color=#007700]As New [/color][COLOR=#0000bb]ResourceDictionary
rs[/COLOR][color=#007700].[/color][color=#0000bb]Source [/color][color=#007700]= [/color][COLOR=#0000bb]ur
Application[/COLOR][color=#007700].[/color][color=#0000bb]Current[/color][color=#007700].[/color][color=#0000bb]Resources[/color][color=#007700].[/color][color=#0000bb]MergedDictionaries[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700]([/color][color=#0000bb]rs[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][color=#0000bb][/color][/COLOR]
الان قم بتشغيل البرنامج والضغط على الزر المسمى English