مشاركة عبر


حزمة ال URIفى WPF

في Windows Presentation Foundation (WPF) ، يتم استخدام معرفات موارد منتظمة (URI) لتعريف و تحميل الملفات بعدة طرق، بما في ذلك التالي:

  • تحديد واجهة المستخدم (UI)للإظهار عندما يبدأ التطبيق أولاً.

  • تحميل الصور.

  • التنقل بين الصفحات.

  • تحميل ملفات البيانات الغير قابلة للتنفيذ.

علاوة على ذلك، معرفات URI يمكن استخدامها لتحديد ثم تحميل الملفات من تشكيلة من المواقع تضمن ما يلي:

  • التجميع الحالي .

  • التجميع المشار إليه.

  • موقع بالنسبة تجميع.

  • موقع تطبيق الأصل.

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

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

  • نظام حزمة URI
  • معرّفات ملف المورد URI
  • ملف معرّفات URI للمحتوى
  • موقع معرّفات URI الأصل
  • ملف ترحيل الصفحات
  • أو مطلقة.محددات يحزم نسبي
  • تحليل حزمة URI
  • البرمجة بواسطة حزمة المعرّفات URI
  • موضوعات ذات صلة

نظام حزمة URI

نظام حزمة URI يتم استخدامه بواسطة اصطلاحات التحزيم المفتوحة مواصفات (OPC) التي تصف طراز لتنظيم و تعريف المحتوى. العناصر الأساسية لهذا الطراز هي الحزم والأجزاء، حيث الحزمة هى حاوية منطقية لواحدة أو أكثر من أجزاء المنطقية . يوضح الرسم التالي هذا المفهوم.

الرسم التخطيطي للحزمة والأجزاء

لتعريف الأجزاء ، ترفع مواصفات OPC توسعة RFC 2396 (معرفات موقع المعلومات (URI): بناء الجملة العام) لتعريف نظام الحزمة URI .

النظام المحدد بواسطة URI معرف ببادئة الخاص به; http ، ftp, و ملف هى أمثلة معروفة. نظام الحزمة URI يستخدم "الحزمة" كنظام خاص به ويحتوي مكونين: المرجع و المسار. التالي هو تنسيق الحزمةURI.

الحزمة: / / السلطة / المسار

تحدد السلطة نوع الحزمة التى يتضمنها جزء ما ، فى حين يحدد المسارموقع جزء ضمن الحزمة.

يتم توضيح هذا المفهوم عن طريق الشكل التالي:

العلاقة بين الحزمة والتخويل والمسار

الحزم والأجزاء مثل التطبيقات و الملفات حيث يمكن للتطبيق (الحزمة) تضمين واحد أو أكثر من الملفات (أجزاء) ، بما في ذلك:

  • ملفات المصادر التي يتم تحويلها برمجياً إلى التجميع المحلي.

  • ملفات الموارد التي يتم تحويلها برمجياً إلى تجميع مرجعى.

  • ملفات الموارد التي يتم تحويلها برمجياً إلى تجميع مرجعى.

  • ملفات المحتوى

  • موقع ملفات الأصل.

للوصول إلى هذه الأنواع من الملفات WPF يدعم سلطتين: التطبيق: / / / و siteoforigin: / / /. التطبيق: / / / يقوم المرجع بتعريف ملفات بيانات التطبيق التي تتوقف في وقت التحويل البرمجي بما في ذلك المورد و ملفات المحتوى. المرجع siteoforigin: / / / يقوم بتعريف موقع ملفات الأصل . يتم عرض النطاق لكل مرجع في الشكل التالي.

الرسم التخطيطي لـ Pack URI

ملاحظةملاحظة

مكون المرجع من على يحزم URIهو المضمنة URIالذي يشير إلى يحزم و يجب أن يتوافق مع RFC 2396.بالإضافة إلى ذلك، يجب استبداله بالحرف "،" الحرف "/"، وحجز أحرف مثل كـ "%"و"؟" يجب أن يكون escaped.راجع استدعاء OPC للحصول على التفاصيل.

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

معرّفات ملف المورد URI

Resource files are configured as MSBuild Resource items and are compiled into assemblies. WPFيعتمد إنشاء يحزممعرفات URIالتي يمكن استخدامها للتعرف على ملفات الموارد التي يتم التحويل البرمجي في التجميع المحلي أو تم تحويلها برمجياً إلى تجميع الذي هو المشار إليه من التجميع المحلي.

ملفات المصدر-التجميع المحلي

حزمة URI لملف مورد ما يترجم إلى التجميع المحلي مستخدماً المرجع والمسار التالي:

  • المرجع: التطبيق

  • المسار: اسم ملف المورد بما في ذلك المسار الخاص به بالنسبة إلى ملف الجذر لمشروع التجميع المحلي.

يظهر المثال التالي حزمة URI لملف الموارد XAML الموجود في جذر مجلد مشروع التجميع المحلي .

pack://application:,,,/ResourceFile.xaml

يظهر المثال التالي حزمة URI لملف الموارد XAML الموجود في مجلد فرعى لمجلد مشروع التجميع المحلي .

pack://application:,,,/Subfolder/ResourceFile.xaml

ملفات المصدرللتجميع المرجعى

حزمة URI لملف موارد ما يترجم إلى التجميع المحلي مستخدماً المرجع والمسار التالي:

  • المرجع: التطبيق

  • المسار: اسم ملف المورد المترجم إلى التجميع المرجعى. يجب أن يتوافق كل مسار مع التنسيق التالي:

    AssemblyShortName ; اصدار ] ; PublicKey ; المكون / مسار

    • AssemblyShortName: الاسم المختصر للتجميع المرجعى.

    • ; اصدار [اختياري]: إصدار التجميع المرجعى الذي يحتوي على ملف الموارد. يُستخدم هذا عندما يتم تحميل اثنين أو أكثر من التجميعات المرجعية بنفس الاسم القصير.

    • PublicKey [اختياري]: المفتاح العمومي الذي تم استخدامه لتسجيل التجميع المرجعى. يُستخدم هذا عندما يتم تحميل اثنين أو أكثر من التجميعات المرجعية بنفس الاسم القصير.

    • ;مكون: يحدد أن التجميع المشار إليه مرجعى من التجميع المحلي.

    • / المسار: اسم ملف المورد بما في ذلك المسار الخاص به بالنسبة إلى ملف الجذر لمشروع التجميع المحلي.

يظهر المثال التالي حزمة URI لملف الموارد XAML الموجود في جذر مجلد مشروع التجميع المحلي .

pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml

يظهر المثال التالي حزمة URI لملف الموارد XAML الموجود في مجلد فرعى لمجلد مشروع التجميع المحلي .

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml

يظهر المثال التالي حزمة URI لملف الموارد XAML الموجود في المجلد الجذرى لمشروع التجميع المرجعى ذى الإصدار الخاص.

pack://application:,,,/ReferencedAssembly;v1.0.0.1;component/ResourceFile.xaml

لاحظ أن حزمة بناء الجملة URI لملفات الموارد يمكن استخدامها للتجميع المرجعى مع التطبيق: / / / المرجع. على سبيل المثال، لا يتم اعتماد التالي في WPF.

pack://siteoforigin:,,,/SomeAssembly;component/ResourceFile.xaml

ملف معرّفات URI للمحتوى

معرفات URI لملف محتوى يستخدم المرجع والمسار التالي:

  • المرجع: التطبيق

  • المسار: اسم ملف المحتوى بما في ذلك المسار الخاص به نسبة إلى موقع نظام ملف التجميع الرئيسي القابل للتنفيذ الخاص بالتطبيق.

يوضح المثال التالي معرفات URI لملف المحتوىXAML الموجود في نفس المجلد مثل التجميع القابل للتنفيذ.

pack://application:,,,/ContentFile.xaml

يوضح المثال التالي معرفات URI لملف المحتوى XAML الموجود في المجلد الفرعي الذي نسبة إلى تجميع التطبيق القابل للتنفيذ .

pack://application:,,,/Subfolder/ContentFile.xaml

ملاحظةملاحظة

ملفات المحتوىHTML لا يمكن الانتقال إلىها.يدعم نظام URI فقط التنقل الى ملفاتHTML الموجودة في موقع الأصل.

موقع معرّفات URI الأصل

معرفات URI لموقع من مواقع الأصل يستخدم ملف المرجع والمسار التالي:

  • المرجع: siteoforigin: / / /.

  • المسار: اسم موقع ملف الأصل، بما في ذلك المسار الخاص به نسبة إلى الموقع الذي تم تشغيل التجميع القابل للتنفيذ به.

يوضح المثال التالي معرفاتURI لموقع الملفات الأصل XAML المخزنة في الموقع الذي يتم تشغيل التجميع القابل للتنفيذ به.

pack://siteoforigin:,,,/SiteOfOriginFile.xaml

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

pack://siteoforigin:,,,/Subfolder/SiteOfOriginFile.xaml

ملف ترحيل الصفحات

ملفات XAML التي تم تكوينها كـعناصر MSBuildPage المترجمة إلى التجميعات بنفس الطريقة مثل ملفات المصادر. وبالتالي، يمكن تحديد عناصر MSBuildPage باستخدام حزمة معرفات URI لملفات المصادر.

أنواع ملفات XAML التي يتم تكوينها بشكل عام كـعناصر MSBuildPage بها أحد الإجراءات التالية كما بها العنصر الجذرى:

أو مطلقة.محددات يحزم نسبي

حزمة URI مؤهلة بشكل كامل تتضمن النظام، و المرجع المصدق، و المسار، فهو يعتبر حزمة URI مطلقة . كتبسيط للمطورين، تسمح لك عادةً عناصرXAML بتعيين السمات المناسبة لحزمة URI نسبية، والذي يتضمن المسار فقط

على سبيل المثال، خذ بعين الاعتبار حزمة URI المطلقة لملف الموارد في التجميع المحلي.

pack://application:,,,/ResourceFile.xaml

حزمة URIالنسبية التي تشير إلى ملف المورد هذا قد يكون التالي.

/ResourceFile.xaml

ملاحظةملاحظة

لأن موقع ملفات الأصل غير المقترنة بالتجميعات يمكن فقط الإشارة إلىيها بالحزمة معرفات URIالمطلقة.

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

App.xaml

Page2.xaml

\SubFolder

  + Page1.xaml

  + Page2.xaml

إذا احتوىت Page1.xaml على URI التي تشير الجذر \SubFolder\Page2.xaml ، المرجع يمكنه استخدام الحزمة النسبية التالية URI.

Page2.xaml

إذا احتوىت Page1.xaml على URI التي تشير الجذر \SubFolder\Page2.xaml ، المرجع يمكنه استخدام الحزمة النسبية التالية URI.

/Page2.xaml

تحليل حزمة URI

تنسيق حزمةمعرفات URI يجعل من الممكن لحزمة معرفات URI لأنواع مختلفة من الملفات التي تبدو متشابهة. على سبيل المثال، خذ بعين الاعتبار حزمةURIالمطلقة.

pack://application:,,,/ResourceOrContentFile.xaml

قد تشير حزمة URIالمطلقة هذه إلى ملف مورد في التجميع المحلي أو ملف المحتوى. ونفس الشيء صحيح بالنسبة الى URIالنسبي التالي .

/ResourceOrContentFile.xaml

لتحديد نوع الملف الذي تشير إليه حزمةURI ، WPF يحل معرفات URI ملفات الموارد في التجميعات المحلية لملفات المحتويات باستخدام الأساليب البحثية التالية:

  1. اختبار بيانات تعريف التجميع لسمةAssemblyAssociatedContentFileAttribute تطابق URI.

  2. إذا تم العثور على سمةAssemblyAssociatedContentFileAttribute يشير مسار الحزمة URI إلى ملف المحتوى.

  3. إذا لم يتم العثور على سمة AssemblyAssociatedContentFileAttribute ، اختبار مجموعة ملفات الموارد التي يتم تحويلها برمجياً إلى التجميع المحلي.

  4. إذا تم العثور على ملف مورد يطابق مسار الحزمة URI، يشير مسار حزمة URI إلى ملف الموارد.

  5. إذا لم يتم العثور على المورد، ستكونUri المنشأة داخلياً غير صالحة.

لا يتم تطبيق دقةURI الخاصةمعرفات URI التي تشيرالى التالي:

  • ملفات المحتوى في التجميعات المرجعية: هذه الأنواع من الملفات غير معتمدة من قبل WPF.

  • الملفات المضمنة في التجميعات المشار إليها: معرفات URI التى تعرفهم تكون فريدة لأنها تتضمن اسم التجميع المرجعى و;component اللاحقة.

  • موقع ملفات الأصل. معرفات URI التى تعرفهم تكون فريدة لأنها الملفات الوحيدة التي يمكن تعريفها بواسطة حزمةمعرفات URI التي تحتوي على المرجع / / /: siteoforigin .

تبسيط واحد تسمح به دقةURI من أجل التعليمات البرمجية أن تكون مستقلة إلى حد ماعن مواقع الموارد و ملفات المحتوى. على سبيل المثال، إذا كان لديك ملف موارد في التجميع المحلي الذي يتم تكوينه ليكون ملف محتوى،تظل حزمةURI لـلموارد كما هى, كما تفعل التعليمات البرمجية التي تستخدم حزمة URI.

البرمجة بواسطة حزمة المعرّفات URI

العديد من فئات WPF تنفذ خصائص يمكن تعيينها بواسطة حزمة معرفات URI ، بما في ذلك:

يمكن تعيين هذه الخصائص من العلامات والتعليمات البرمجية. يوضح هذا المقطع البنائات الأساسية لكل منهما ثم يظهر أمثلة السيناريو الشائعة.

استخدام معرفات URI في العلامات

حزمة URI تكون محددة في العلامات عن طريق تعيين عنصر سمة مع حزمة URI. فعلى سبيل المثال:

<element attribute="pack://application:,,,/File.xaml" />

يوضح جدول 1 حزممعرفات URI النسبية المتنوعة التي يمكنك تحديدها في العلامات.

الجدول 1: معرفات حزمة URI المطلقة في العلامات

'ملف'

التحزيم المطلق URI

ملفات المصدر-التجميع المحلي

"pack://application:,,,/ResourceFile.xaml"

ملفات المصدر في المجلد الفرعي - التجميع المحلي

"pack://application:,,,/Subfolder/ResourceFile.xaml"

ملفات المصدر- التجميع المرجعى

"pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"

ملفات المصدر في المجلد الفرعي للتجميع المرجعى

"pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"

ملفات المصدر في التجميع المرجعى المصدر

"pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml"

ملفات المحتوى

"pack://application:,,,/ContentFile.xaml"

ملفات المحتوى في المجلد الفرعي

"pack://application:,,,/Subfolder/ContentFile.xaml"

موقع ملفات الأصل.

"pack://siteoforigin:,,,/SOOFile.xaml"

موقع ملفات الأصل في المجلد الفرعي

"pack://siteoforigin:,,,/Subfolder/SOOFile.xaml"

يوضح جدول 2 الحزم النسبية المتنوعة معرفات URI التي يمكنك تحديدها في العلامات.

الجدول 2: المعرّفات النسبية في علامات URI

'ملف'

المعرفات النسبية URI

ملفات المصدر فى التجميع المحلي

"/ResourceFile.xaml"

ملفات المصدر في المجلد الفرعي للتجميع المحلي

"/Subfolder/ResourceFile.xaml"

ملفات المصدر فى التجميع المرجعى

"/ReferencedAssembly;component/ResourceFile.xaml"

ملفات المصدر في المجلد الفرعي للتجميع المرجعى

"/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"

ملفات المحتوى

"/ContentFile.xaml"

ملفات المحتوى في المجلد الفرعي

"/Subfolder/ContentFile.xaml"

استخدام معرفات URI في التعليمات البرمجية

تحديد URIمعرفات في التعليمات البرمجية بواسطة إنشاء فئةUri ثم التمرير للمعرفاتURI كمعلم إلى المنشئ. كما هو موضّح في المثال التالي.

Uri uri = new Uri("pack://application:,,,/File.xaml");

بشكل افتراضي، تعتبر فئة Uri حزمة معرفات URI مطلقة. وبالتالي، يتم رفع استثناء عند إنشاء مثيل لفئة Uri مع حزمة URIنسبية.

Uri uri = new Uri("/File.xaml");

ولحسن الحظ، Uri(String, UriKind) زيادة التحميل من منشئ فئة Uri يقبل معلمة من نوع UriKind للسماح لك بتحديد ما إذا كانت الحزمة URI مطلقة أو نسبية.

// Absolute URI (default)
Uri absoluteUri = new Uri("pack://application:,,,/File.xaml", UriKind.Absolute);
// Relative URI
Uri relativeUri = new Uri("/File.xaml", UriKind.Relative);

يجب تحديد فقط Absolute أو Relative عندما تكون متأكداً من أن حزمة URI المتوفرة هى أحدهما. إذا كنت لا تعرف نوع الحزمة URI المستخدمة, مثل عند قيام مستخدم بإدخال حزمةURI فى وقت التشغيل، استخدم RelativeOrAbsolute بدلاً من ذلك.

// Relative or Absolute URI provided by user via a text box
TextBox userProvidedUriTextBox = new TextBox();
Uri uri = new Uri(userProvidedUriTextBox.Text, UriKind.RelativeOrAbsolute);

يوضح الجدول 3 الحزم النسبية المختلفة معرفات URI التي يمكنك تحديدها في التعليمات البرمجية باستخدام System.Uri.

الجدول 3: معرفات URI المطلقة في التعليمات البرمجية

'ملف'

التحزيم المطلق URI

ملفات المصدر-التجميع المحلي

Uri uri = new Uri("pack://application:,,,/ResourceFile.xaml", UriKind.Absolute);

ملفات المصدر في المجلد الفرعي - التجميع المحلي

Uri uri = new Uri("pack://application:,,,/Subfolder/ResourceFile.xaml", UriKind.Absolute);

ملفات المصدر- التجميع المرجعى

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Absolute);

ملفات المصدر في المجلد الفرعي للتجميع المرجعى

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Absolute);

ملفات المصدر في التجميع المرجعى المصدر

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml", UriKind.Absolute);

ملفات المحتوى

Uri uri = new Uri("pack://application:,,,/ContentFile.xaml", UriKind.Absolute);

ملفات المحتوى في المجلد الفرعي

Uri uri = new Uri("pack://application:,,,/Subfolder/ContentFile.xaml", UriKind.Absolute);

موقع ملفات الأصل.

Uri uri = new Uri("pack://siteoforigin:,,,/SOOFile.xaml", UriKind.Absolute);

موقع ملفات الأصل في المجلد الفرعي

Uri uri = new Uri("pack://siteoforigin:,,,/Subfolder/SOOFile.xaml", UriKind.Absolute);

يوضح الجدول 4 الحزم النسبية المختلفة معرفات URI التي يمكنك تحديدها في التعليمات البرمجية باستخدام System.Uri.

الجدول 4: المعرّفات النسبية في معرفات URI البرمجية

'ملف'

المعرفات النسبية URI

ملفات المصدر-التجميع المحلي

Uri uri = new Uri("/ResourceFile.xaml", UriKind.Relative);

ملفات المصدر في المجلد الفرعي - التجميع المحلي

Uri uri = new Uri("/Subfolder/ResourceFile.xaml", UriKind.Relative);

ملفات المصدر- التجميع المرجعى

Uri uri = new Uri("/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Relative);

ملفات المصدر في المجلد الفرعي للتجميع المرجعى

Uri uri = new Uri("/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Relative);

ملفات المحتوى

Uri uri = new Uri("/ContentFile.xaml", UriKind.Relative);

ملفات المحتوى في المجلد الفرعي

Uri uri = new Uri("/Subfolder/ContentFile.xaml", UriKind.Relative);

سيناريوهات معرفات URI الشائعة

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

تحديد UI الذى سيظهر عند بدء التطبيق

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

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="MainWindow.xaml" />

التطبيقات المستقلة و تطبيقات مستعرض XBAP (XBAP) يمكنها أيضاً تحديد صفحة كـ واجهة المستخدم الأولية كما هو موضح في المثال التالي

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="HomePage.xaml" />

إذا كان التطبيق تطبيقاً منفرداً وتم تحديد صفحة بواسطةStartupUri ، WPF تفتح NavigationWindow لاستضافة الصفحة. تطبيقات XBAP ، يتم عرض الصفحة في المستعرض المضيف.

التنقل للصفحة

المثال التالي يوضح كيفية التنقل للصفحة.

<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  WindowTitle="Page With Hyperlink"
  WindowWidth="250"
  WindowHeight="250">


...


<Hyperlink NavigateUri="UriOfPageToNavigateTo.xaml">
  Navigate to Another Page
</Hyperlink>


...


</Page>

للحصول على مزيد من المعلومات حول الطرق المتنوعة للتنقل في WPF راجع نظرة عامة حول التنقل.

تعيين رمز إطار

المثال التالي يوضح كيفية استخدام URI لتحديد رمز أحد الإطارات.

<Window
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.MainWindow"
    Icon="WPFIcon1.ico">
</Window>

لمزيد من المعلومات، راجع Icon.

تحميل الصورة ، و الصوت ، وملفات الفيديو

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

<MediaElement Stretch="Fill" LoadedBehavior="Play" Source="pack://siteoforigin:,,,/Media/bee.wmv" />
<MediaElement Stretch="Fill" LoadedBehavior="Play" Source="pack://siteoforigin:,,,/Media/ringin.wav" />
<Image Source="Images/Watermark.png" />

للحصول على مزيد من المعلومات حول العمل بمحتوى الوسائط راجع نظرة عامة حول رسومات WPF , الحركة و الوسائط.

تحميل قاموس الموارد من موقع الأصل

قواميس الموارد ( ResourceDictionary) يمكن استخدامها لتدعيم سمات التطبيق. طريقة واحدة لإنشاء وإدارة السمات هى إنشاء سمات متعددة مثل قواميس الموارد التي تقع في موقع أحد تطبيقات الأصل. يسمح هذا بإضافة السمات ويتم تحديثها بدون ترجمة أو اعادة نشر تطبيقات. يمكن تعريف قواميس المورد هذه وتحميلها باستخدام حزمة معرفات URI ، التي تظهر في المثال التالي.

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="HomePage.xaml">
  <Application.Resources>
    <ResourceDictionary Source="pack://siteoforigin:,,,/PageTheme.xaml" />
  </Application.Resources>
</Application>

للحصول على نظرة عامة حول السمات في WPF راجع التنسيق و القولبة.

راجع أيضًا:

المبادئ

موارد التطبيق WPF و المحتوى و الملفات البيانات