سؤال

لدي بعض XAML لرسم شعار وأريد إعادة استخدام هذا في مختلف ملفات XAML أخرى (لا يوجد بها واجهة مستخدم ولا يتطلب رمزًا). المستوى العلوي من الشعار XAML هو أ Canvas العنصر.

لاستخدام الشعار في ملفات XAML الأخرى ، من الأفضل تحديد هذا الشعار كعنصر في أ ResourceDictionary أو إنشاء UserControl?

هذا يبدو سهلاً مع أ UserControl, ، ومع ذلك ، أريد تحميل ملفات XAML الخاصة بي مع XamlReader ، لذا فأنا أفضل استخدام الموارد بحيث يمكن تحديدها داخل XAML. يبدو من الممكن تخزين العناصر مثل أ Canvas في ResourceDictionary لكنني لست متأكدًا من كيفية الرجوع إليهم.

على سبيل المثال ، يمكنني تحديد شعوري على أنه أ ResourceDictionary العنصر على النحو التالي:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas x:Name="LayoutRoot" x:Key="Logo">
        <!-- My Logo -->
    </Canvas>
</ResourceDictionary>

لكن كيف يمكنني استخدام هذا Logo في ملفات XAML الأخرى الخاصة بي - ربما لدي فكرة خاطئة عن الموارد؟

هل كانت مفيدة؟

المحلول

لقد وجدت أن الحل هو فرشاة بصرية. يمكنني تحديد هذا في الموارد على النحو التالي:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
    <VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo"> 
               <!-- My Logo --> 
             </Canvas> 

ثم فقط استخدم هذا البشرة البصرية عند الضرورة.

نصائح أخرى

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

ومع ذلك ، من المحتمل أن يكون UserControl خيارًا أسهل ، لأنه سيكون عنصرًا بسيطًا وقابل لإعادة الاستخدام الذي يمكنك إسقاطه في أي مكان.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top