مشاركة عبر


مساحات الاسم XAML وتعيين مساحة الاسم ل XAML WPF

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

يشتمل هذا الموضوع على الأقسام التالية.

  • ما هو مساحة أسماء مصادر XAML؟
  • تعريفات مساحات أسماء WPF and XAML
  • تعيين الى فئات مخصص وتجميعات
  • تعيين مساحات الأسماء CLR الى مساحات الأسماء XML في تجميع
  • مساحات الاسم وبادئات غير ذلك من قوالب XAML المصمم
  • موضوعات ذات صلة

ما هو مساحة أسماء مصادر XAML؟

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

تعريفات مساحات أسماء WPF and XAML

ضمن تصريحات مساحة الاسم في علامة الجذر للعديد من ملفات XAML، سترى أنه يوجد عادة تصريحات مساحة اسم XML الثاني. التعريف الأولى بتعيين العميل WPF الكلي/مساحة الاسم XAML هيكل كـ الافتراضي:

xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"

التعريف الثاني يقوم بتعيين مساحة اسم XAML منفصلة بتعيينها (عادةً) بالبداية x:.

xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"

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

البداية x: اصطلاح لتعيين دعم أجزاء لغة XAML متبوعاً بقوالب المشروع نموذج التعليمات البرمجية، وتوثيقات سمات اللغة داخل هذا الـ SDK. يعرّف مساحة اسم XAML العديد من السمات الشائعة حتى الميزات الضرورية الأساسية لتطبيقات WPF. على سبيل المثال، لضم أي تعليمات برمجية خلفية إلى ملف XAML من خلال فئة جزئية يجب عليك تسمية الفئة كسمة x:Class في العنصر الأصلى ذا الصلة بملف XAML. أو أي عنصر كما هو موضح في صفحة XAML التي ترغب في الوصول اليها كمورد مشفر يجب أن يكون لديه مجموعة السمات x:Key للعنصر المطلوب. للحصول على المزيد من المعلومات حول هذه الأوجه والأوجه الأخرى الخاصة بـ XAML راجع نظرة عامة على XAML (WPF) أو بناء جملة XAML بالتفاصيل.

تعيين الى فئات مخصص وتجميعات

يمكنك تعيين مساحات أسماء XML لتجميعات باستخدام سلسلة من الرموز داخل تعريف بداية xmlns مشابه لكيفية تعيين مساحات أسماء XAML WPF و أجزاء XAML القياسية إلى البادئات.

يأخذ بناء الجملة تسميات الرموز الممكنة التالية والقيم التالية:

مساحة الاسم CLR clr-namespace: معّرفة داخل التجميع الذي يحتوي على الأنواع العامة للكشف كعناصر.

التجميع assembly=الذي يحتوي على بعض أو كافة مساحات الاسماءCLR المشار اليها. هذه القيمة عادةً هى فقط اسم التجميع وليس المسار، ولاتتضمن الملحق (مثل .dll أو .exe). يجب تأسيس المسار إلى هذا التجميع كمرجع مشروع في ملف المشروع الذي يحتوي على XAML الذى تحاول تعيينه. لدمج تعيين الإصدار وتوقيع اسم قوي يمكن أن تكون القيمة assembly سلسلة نصية كما هو محدد بواسطة AssemblyName ، بدلاً من اسم السلسلة البسيط.

لاحظ أن الحرف الذى يفصل الرمز clr-namespace من قيمته نقطتين (:) بينما يفصل الحرف الذى يفصل الرمز assembly عن قيمته هى علامة يساوي (=). الحرف للاستخدام بين هذه الرموز هى فاصلة منقوطة. أيضاً، لا تقم بتضمين أي مسافة بيضاء فى أي مكان في التصريح.

مثال تعيين أساسى مخصص

على سبيل المثال تعرّف التعليمات البرمجية التالية الفئة المخصصة:

namespace SDKSample {
    public class ExampleClass : ContentControl {
        public ExampleClass() {
        ...
        }
    }
}

هذه الفئة المخصصة يتم بعد ذلك تحويلها برمجياً الى مكتبة، والتي تكون غير ظاهرة لإعدادات المشروع (غير معروضة) مسماة SDKSampleLibrary.

لكي تتمكن من الرجوع إلى هذه الفئة المخصصة، كما تحتاج إلى تضمينها كمرجع للمشروع الحالى الخاص بك وقد تقوم بذلك عادةً باستخدام واجهة مستكشف الحلول في Visual Studio.

والآن لديك مكتبة تحتوي على فئة و مرجع إليها في إعدادات المشروع يمكنك إضافة تعيين البادئة التالية كجزء من عنصر XAML الخاص بك:

xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"

لوضعهم كافة معاً, يكون XAML التالى الذى يتضمن التعيين المخصص بطول الافتراضي النموذجي و x: تعيينات في علامة الجذر ثم يستخدم مرجع له بادئة لإنشاء مثيل ExampleClass في واجهة المستخدم تلك:

<Page x:Class="WPFApplication1.MainPage"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary">
  ...
  <custom:ExampleControl />
...
</Page>

التعيين الى التجميعات الحالية

يمكن أن يكون قد تم حذف assembly إذا كان clr-namespace المشار إليه معرف داخل نفس التجميع كـتعليمات التطبيق البرمجية التي يتم الرجوع إليها للفئات المخصصة. أو بناء جملة مكافئ لهذه الحالة لتحديد assembly=،بدون رمز سلسلة يتبع علامة المساواة.

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

تعيين مساحات الأسماء CLR الى مساحات الأسماء XML في تجميع

يقوم WPF بتعريف سمة CLR المستهلكة بواسطة معالجات XAML لتعيين مساحات الأسماء CLR المتعددة إلى مساحة اسم XAML مفرد. هذه السمة، XmlnsDefinitionAttribute يتم وضعها على مستوى التجميع في مصدر التعليمات البرمجية التي تنتج التجميع. تستخدم التعليمات البرمجية لمصدر التجميع WPF هذه السمة لتعيين مساحات الأسماء الشائعة المتنوعة, مثل System.Windows و System.Windows.Controls ، إلى مساحة الاسم https://schemas.microsoft.com/winfx/2006/xaml/presentation.

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

مساحات الاسم وبادئات غير ذلك من قوالب XAML المصمم

إذا كنت تعمل مع بيئات التطوير و/او أدوات التصميم XAML WPF، قد تلاحظ وجود غير ذلك تعريف مساحات الاسم XAML/بدء داخل العلامة XAML.

مصمم WPF لـ Visual Studioيستخدم مساحة الاسم مصمم الذي هو عادة تعيين البادئةd:. قوالب مشروع أحدث ل WPF قد pre-مخطط بمساحة الاسم هذه XAML إلى دعم تبادل XAML بين مصمم WPF لـ Visual Studioبيئات التصميم الأخرى. Th هو تصميم مساحة الاسم XAML هو المستخدمة لالولاية التصميم أثناء roundtripping المستندة إلى XAML واجهة المستخدم في المصمم perpetuate. هو أيضا استخدام ميزات مثل d:IsDataSource، تمكين وقت تشغيل المصادر بيانات في المصمم.

هو آخر البادئة التي قد تراها تعيين mc:. mc:هو للتوافق مع العلامات، و هو فعلا يرفع توافق علامات النقش الذي هو XAML ليس بالضرورة-خاصة. إلى بعض الحد، يمكن استخدام ميزات توافق ترميز لتبادل XAML بين الإطارات أو عبر حدود غير ذلك من النسخ للتنفيذ، تعمل بين سياقات المخطط XAML، قم بتوفير توافق مع أوضاع محددة في مصممي، و هكذا. لمزيد من المعلومات حول مفاهيم توافق ترميز وكيف يتم ربط إلى WPF، راجع توافق العلامات (mc:) مميزات اللغة.

راجع أيضًا:

المبادئ

نظرة عامة على XAML (WPF)

موارد أخرى

فهم مساحات أسماء XML