‏إظهار الرسائل ذات التسميات WPF. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات WPF. إظهار كافة الرسائل

الاثنين، 28 أكتوبر 2019

انشاء مشروع WPF فى الفيجوال ستوديو


لإنشاء مشروع WPF جديد ، يلزمك تشغيل Visual Studio واختيار خيار "مشروع جديد ..." من شاشة البدء. إذا قمت بتعطيل شاشة البدء ، فافتح قائمة "ملف" واختر "جديد" ، ثم "مشروع". يجب عرض مربع الحوار مشروع جديد.

يعرض مربع الحوار New Project مجموعة مصنفة من قوالب الحلول التي يمكن استخدامها لإنشاء العديد من أنواع مختلفة من المشروع. 
يتم سرد قوالب WPF في قسم Windows ، والذي يمكن تحديده في الشجرة على اليسار. في الصورة ، يتم عرض قسم Windows داخل الفرع C # او VBمن الشجرة. 
دد قالب "تطبيق WPF". أضف اسمًا للمشروع في Name TextBox وانقر فوق "موافق" لإنشاء الحل الجديد.
WPF WINDOWS

بمجرد إنشاء المشروع ، سترى النافذة الرئيسية لبرنامج Visual Studio ، والذي يقدم عددًا من إطارات التصميم والمحررات والأدوات. التصميم الفعلي لهذه النوافذ يعتمد على التكوين الخاص بك. يوجد أدناه تخطيط نموذجي يتضمن جميع الأدوات الأكثر استخدامًا لتصميم التطبيقات المستندة إلى XAML:
العناصر المرقمة في الصورة أعلاه هي:
1-     قائمة
2-     أشرطة الأدوات
3-     الأدوات
4-     نافذة مصمم
5-     محرر XAML
6-     مكتشف الحل 

7-     نافذة الخصائص

الأحد، 27 أكتوبر 2019

WPF XAML



من المعتاد إنشاء برنامج "Hello World" عندما تصادف لغة برمجة جديدة لأول مرة. الكود أدناه هو مثل هذا البرنامج.



<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>    
           <TextBlock>Hello, world!</TextBlock>     
    </Grid>    
</Page>

إذا قمت بلصق XAML أعلاه في محرر Kaxaml ، واستبدال الكود الافتراضي ، سترى أن منطقة المعاينة يتم تحديثها لإظهار ما يلي:
Hello, world!

 دعونا نلقي نظرة على مختلف عناصر Hello World XAML. أول شيء نراه هو عقدة الجذر ، والتي في هذه الحالة هي عنصر الصفحة. لن نرى المزيد من عنصر الصفحة في المقالات المستقبلية في هذه السلسلة ، حيث أننا سنستخدم بشكل رئيسي العقد الجذرية للنافذة. عادةً ما يتم استخدام صفحة في تطبيقات WPF نمط التنقل ، في حين يتم استخدام نافذة للنوافذ ومربعات الحوار القياسية. في هذا المثال ، تكون علامة الصفحة مفيدة بسبب سلوك Kaxaml. إذا قمت بتغيير نص "الصفحة" إلى "نافذة" ، فسترى أنك بحاجة إلى الضغط على مفتاح قبل عرض Kaxaml.

تتضمن عقدة الجذر مساحات أسماء XML اثنين. هذه تعمل إلى حد ما مثل استخدام التوجيهات لمساحات C #. وهي تحدد المكان الذي سيبحث فيه المستند عن عناصر التحكم والعناصر الأخرى التي تضيفها إلى XAML. مساحات الاسمين المدرجة هي تلك الافتراضية التي توفر عناصر WPF القياسية. يمكنك أيضًا الرجوع إلى مساحات الأسماء الخاصة بك باستخدام بناء جملة مماثل. لاحظ أن أحد مساحات الأسماء له اسم مستعار ، "x". عند استخدام عناصر من مساحة الاسم هذه ، سترى أننا بحاجة إلى تضمين x في تعريفات العنصر.

يعرّف عنصر الشبكة شبكة ، والتي هي عنصر تحكم تخطيط قياسي في WPF. تحدد الشبكات الأعمدة والصفوف التي تتقاطع لتكوين خلايا. يمكن إضافة عناصر التحكم إلى هذه الخلايا لإعطاء تنظيم مرئي ممتع. في مثال Hello World ، لم يتم تضمين أي أعمدة أو صفوف حتى يكون للشبكة خلية واحدة فقط.

العنصر الأخير في المثال هو TextBlock. هذا يحتوي على مقدار صغير من النص الذي يمكن أن يتضمن بعض التنسيقات. قمت بتعريف النص بين علامتي الفتح والإغلاق لعنصر XML في هذه الحالة.

بعد TextBlock هناك بعض العلامات الختامية. هذه تضمن أن XML تم تشكيله بشكل جيد. إذا لم يكن كذلك ، فلن يعمل البرنامج.

مثال اخر  

على سبيل المثال ، خذ بعين الاعتبار XAML التالي. لن أصفها بالتفصيل ، حيث سنرى هذا الرمز في المقالات المستقبلية. الاختلافات بين هذا والمثال السابق هي إضافة تعريفات للصف والعمود وإدراج بعض عناصر التحكم الإضافية. لاحظ عنصر StackPanel. هذا هو عنصر تحكم تخطيط آخر. بدلاً من إظهار العناصر في الشبكة ، يتحكم المكدس عموديًا أو أفقيًا.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="200"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <TextBlock Text="Forename"/>
        <TextBlock Grid.Row="1" Text="Surname"/>
        <TextBlock Grid.Row="2" Text="Age"/>
        <TextBlock Grid.Row="3" Text="Sex"/>
        <TextBox Grid.Column="1" Text="Bob"/>
        <TextBox Grid.Column="1" Grid.Row="1" Text="Smith"/>
        <TextBox Width="80" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left"
                 Text="40"/>
        <StackPanel Grid.Column="1" Grid.Row="3" Orientation="Horizontal">
            <RadioButton Content="Male"/>
            <RadioButton Content="Female"/>
        </StackPanel>
    </Grid>
</Page>
 نتيجة الكود السابق

التنسيقات 

أحد الأسباب التي تجعل الأشخاص تحب WPF هي قدرته على إضافة التصميم إلى عناصر التحكم بطرق يصعب تحقيقها في Windows Forms. في الكود أدناه أضفت بعض التصميم الأساسي باستخدام خصائص عناصر التحكم المختلفة. يتم تعيين الخصائص باستخدام سمات XML. لقد أضفت هوامش إلى مربعات النص ، والمحاذاة العمودية إلى كتل النص والألوان إلى أزرار الاختيار.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="200"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <TextBlock Text="Forename" VerticalAlignment="Center"/>
        <TextBlock Grid.Row="1" Text="Surname" VerticalAlignment="Center"/>
        <TextBlock Grid.Row="2" Text="Age" VerticalAlignment="Center"/>
        <TextBlock Grid.Row="3" Text="Sex" VerticalAlignment="Center"/>
        <TextBox Grid.Column="1" Text="Bob" Margin="5"/>
        <TextBox Grid.Column="1" Grid.Row="1" Text="Smith" Margin="5"/>
        <TextBox Width="80" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left"
                 Text="40" Margin="5"/>
        <StackPanel Grid.Column="1" Grid.Row="3" Orientation="Horizontal" Margin="5">
            <RadioButton Content="Male" Foreground="Blue" Margin="0 0 10 0"/>
            <RadioButton Content="Female" Foreground="DeepPink"/>
        </StackPanel>
    </Grid>
</Page>
 النتيجة


السبت، 26 أكتوبر 2019

WPF Windows Presentation Foundation

ما هو WPF ؟

 

المشار إليها فيما يلي باسم WPF ، هي إحدى تقنيات Microsoft التي تتيح لك إنشاء واجهات مستخدم غنية لتطبيقات سطح مكتب Windows. تم تقديم WPF مع .NET Framework الإصدار 3.0 كتكنولوجيا بديلة لـ Windows Forms.
يهدف WPF إلى السماح لك بإنشاء تجارب مستخدم أكثر ثراءً مما يمكنك تطويره بسهولة باستخدام Windows Forms. لتحقيق ذلك ، يغير WPF اختيار تكنولوجيا العرض الأساسية تمامًا. بينما تستند Windows Forms إلى واجهة جهاز الرسومات المستندة إلى البكسل (GDI) ، يستخدم WPF الأنظمة المستندة إلى ناقل DirectX.
نظرًا لأن معظم بطاقات الفيديو الحديثة تدعم DirectX ، فإن تطبيقات WPF تسمح بتدوير النصوص والصور المستندة إلى المتجهات وتدويرها دون استخدام البيكسل. يمكنك دمج رسومات ورسوم متحركة ثنائية وثلاثية الأبعاد ، والتي تستخدم تلقائيًا تسريع الأجهزة المتاحة لتحسين الأداء. يمكنك أيضًا استخدام WPF لتطبيقات الأعمال التي لا تتطلب مثل هذه الرسوم البيانية المزدهرة. على سبيل المثال ، يتضمن Visual Studio 2010 و 2012 واجهات المستخدم المطورة باستخدام WPF.

Extensible Application Markup Language او XAML


يمكنك إنشاء تخطيطات WPF باستخدام مصمم Visual Studio. كما هو الحال مع Windows Forms ، يمكنك سحب وإسقاط عناصر التحكم من مربع الأدوات على سطح تصميم للإطار. عند إنشاء تصميمات واجهة المستخدم الخاصة بك بهذه الطريقة ، يقوم Visual Studio بإنشاء تعليمات برمجية باستخدام لغة جديدة باسم "لغة تمييز التطبيق القابلة للتوسيع". هذا هو اختصار ل XAML ، وضوحا "Zamm Ell".

بخلاف نماذج Windows ، لا يخفي WPF التعليمات البرمجية التي ينشئها المصمم. كود XAML سهل المشاهدة ، كما هو مبني على XML ، سهل الفهم. في الواقع ، من السهل للغاية التعامل معه بحيث يتم تشجيعك بنشاط على تحريره يدويًا. في كثير من الحالات ، يكون من السهل التعامل مع عناصر XML وسماتها مباشرةً بدلاً من إنشاء نفس النتائج مع مصمم. خلال البرنامج التعليمي ، سوف نركز على XAML ، بدلاً من العمل مع المصممين ، لأن هذا يتيح فهمًا أكبر للتكنولوجيا.

XAML لها تطبيقات أوسع من إنشاء واجهات مستخدم WPF. إنه أيضًا الأساس لتصميم واجهات Silverlight وبرامج وتطبيقات Windows Phone للأجهزة اللوحية التي تعمل بنظام Windows 8. هناك اختلافات بين التقنيات المستندة إلى XAML ولكن تعلم متغير واحد يجعل الانتقال إلى الآخرين أسهل. سنركز على إصدار WPF من XAML ، لأنه الوحيد الذي يسمح لك بإنشاء تطبيقات مع وصول كامل إلى ميزات نظام التشغيل Microsoft Windows.

من الميزات الرائعة لـ WPF والتطبيقات المستندة إلى XAML بشكل عام ، الفصل بين واجهة المستخدم والرمز الآخر في برنامجك. تعتمد تطبيقات Windows Forms اعتمادًا كبيرًا على الأحداث ، حيث ترتبط معالجات الأحداث بعناصر التحكم المرئية. يفصل WPF بين رمز XAML ، والذي يحدد تصميم التطبيق ورمز الخلفية الذي تنشئه باستخدام لغة .NET مثل C #.

على الرغم من أنه يمكنك الاتصال بالكود للتحكم في الأحداث ، إلا أنه من الأكثر شيوعًا الاستفادة من تقنيات الربط والبيانات القوية في XAML. هذه تتيح لك الرجوع إلى الخصائص والأساليب بشكل فضفاض حسب الاسم في سمات XML. في وقت التشغيل ، يتم تكوين عناصر التحكم وفقًا للخصائص المسماة. ترتبط الأزرار وعناصر التحكم الأخرى بالأوامر التي يتم تنفيذها استجابة لإجراءات المستخدم ، مع تغيير حالة عناصر التحكم المرتبطة تلقائيًا وفقًا لتوفر الأوامر.

يرتبط التصميم والرمز بشكل فضفاض بحيث يمكن للأشخاص المختلفين العمل على هذه العناصر المنفصلة. على سبيل المثال ، يمكن للمطور إنشاء فئات تحتوي على خصائص لربطها وأوامر تنفيذها دون معرفة تصميم واجهة المستخدم. مع توفر الحد الأدنى من التفاصيل للرمز الأساسي ، يمكن لمصمم واجهة المستخدم إنشاء XAML بشكل منفصل للمطور لدمجه في المشروع لاحقًا. قامت Microsoft بإنشاء أدوات منفصلة لهذين الدورين. يتم تشجيع المطورين على استخدام Visual Studio بينما يمتلك المصممون أدوات Expression Studio ، بما في ذلك Blend.

يتم توفير فصل آخر من المخاوف عن طريق التصميم. باستخدام مفهوم مماثل لفصل المحتوى والأسلوب في صفحات الويب التي يوفرها HTML و CSS ، يمكنك تحديد الأنماط باستخدام XAML وتطبيقها على عناصر تحكم متعددة. على سبيل المثال ، إذا قررت أن جميع الأزرار الموجودة في البرنامج يجب أن تكون حمراء وتحتوي على نص غامق ، فيمكنك تحديد نمط لذلك وإضافة النمط إلى جميع الأزرار. إذا قررت لاحقًا أن اللون الأزرق سيكون لونًا أفضل ، فيمكنك تحديث النمط في مكان واحد وستتخذ جميع عناصر التحكم التي تستخدم النمط الشكل الجديد.

عناصر تحكم محسنة  

يغير WPF الطريقة التي تتحكم بها واجهة المستخدم في العمل. تحتوي معظم عناصر التحكم التي يشعر بها مطورو Windows Forms على ما يعادلها في WPF. لا تزال عناصر التحكم تتضمن خصائص تتيح لك تغيير شكلها وسلوكها ، مثل خيارات الألوان والخطوط. للتطبيقات البسيطة ، يمكن أن يكون هذا كافيا.

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

عناصر تحكم WPF تستند إلى قوالب. يتم تعريف القالب باستخدام XAML ويتضمن جميع العناصر الرسومية التي تسمح لعنصر تحكم بالعمل بشكل صحيح. على سبيل المثال ، يتضمن قالب الزر ألوان الخلفية والتظليل والخطوط والمنحنيات ومناطق المحتوى التي تشكل زرًا. هذه المعلومات موجودة لكل حالة زر ، مثل الحالات الممكّنة والمعطلة والمركزة والماوس فوق والضغط. يتضمن القالب أيضًا تفاصيل التحولات المتحركة بين الحالات.

عند إنشاء تطبيقاتك ، يمكنك تعديل قوالب عناصر التحكم الحالية. يتيح لك هذا إمكانية تغيير شكل عناصر التحكم القياسية وشعورها لتتناسب مع تصميم البرنامج الذي تقوم بتطويره.
 

Multimedia

كانت نماذج Windows محدودة للغاية في دعمها للوسائط المتعددة. يقوم WPF بتصحيح ذلك باستخدام عناصر التحكم القياسية للصور والصوت والفيديو. يمكن تشغيل الصوت والفيديو بتنسيقات متعددة ودمجه في عناصر التحكم باستخدام تركيبة التحكم. يمكنك بسهولة تضمين الوسائط المتعددة التي يتم تشغيلها تلقائيًا أو التي يتم التحكم فيها بواسطة إجراءات المستخدم.

عيوب WPF 

 WPF هي تقنية قوية للغاية ولكن لديها بعض العيوب. بالنسبة لمطوري Windows Forms ذوي الخبرة ، يكون الفرق بين الأسلوبين كبيرًا. تؤدي مرونة WPF إلى زيادة التعقيد في بعض السيناريوهات. هذا يعني أن WPF لديه منحنى تعليمي أكثر حدة من Windows Forms وأن الترحيل إلى WPF يتطلب الكثير من التعلم. يمكن اعتبار حقيقة أن WPF يمكن استخدامها بطريقة مشابهة لنماذج Windows بمثابة عيب. على الرغم من أنه يسمح بنقل أسرع ، إلا أنه في بعض الأحيان يعني أن مطوري WPF الجدد غير مدركين لقوة النموذج الجديد.

مشكلة أخرى مع WPF لمطوري واجهة المستخدم الموجودة هي أن بعض عناصر تحكم Windows Forms الأقل استخدامًا مفقودة. يمكنك تنزيل بعض إصدارات المصادر المفتوحة أو المجانية ، أو شراء مجموعة تحكم إذا كنت تفضل ذلك. لا يتم تضمين بعض عناصر التحكم لأنه يمكنك تعديل قوالب عناصر تحكم WPF الأخرى لإنشاءها بنفسك. ومع ذلك ، قد يبدو هذا كثيرًا من العمل عندما ترغب في تطوير منتج بسيط ونشره بسرعة.

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


جميع الحقوق محفوظة © 2019 الحقيبة البرمجية لمبرمجى VB.NET