تم دمج مورد WPF للتطبيق. الموارد ولكن لم يتم حلها في وقت التشغيل

StackOverflow https://stackoverflow.com/questions/2543726

سؤال

لدي فرشاة جزء من أ ResourceDictionary تم دمج ذلك Application.Resources.

ولكن لسبب ما لم يتم حلها في وقت التشغيل عندما يتم تطبيق نمط على أحد أدوات التحكم. ومع ذلك ، إذا اتصلت application.current.findResource ("BrushName") من النافذة الفورية في الوقت الذي يتم فيه إلقاء الاستثناء ، يتم العثور على المورد.

هل فاتني شيء؟ أليس من المفترض أن يحاول WPF البحث عن المورد في موارد التطبيق؟

تحديثالتطبيق كبير جدًا ، لذلك لا يمكنني نشر جميع التعليمات البرمجية الفعلية ولكن إليك الطريقة التي يتم بها دمج الموارد واستخدامها:

Brushes.xaml

<ResourceDictionary ...>
  <SolidColorBrush x:Key="BrushName" Color="#12345678" />
</ResourceDictionary>

SomeStyles.xaml

<ResourceDictionary ...>
  <Style x:Key="SomeStyle">
    <Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
  </Style>
</ResourceDictionary>

App.xaml

<Application ...>
  <Application.Resources>

    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Brushes.xaml" />
        <ResourceDictionary Source="SomeStyles.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>


  </Application.Resources>
</Application ...>

ثم قد يستخدم بعض التحكم النمط باستخدام المورد مثل هذا:

...
Style={StaticResource SomeStyle}
...

تحديث

يبدو أنه يحدث للقوائم والضوابط التي تم إنشاؤها في الكود. هل يمكن أن تكون مرتبطة بتلك الضوابط والقوائم التي لا تكون أجزاء من شجرة البصرية في أي نافذة؟

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

المحلول

يحتاج قاموس somestyle.xaml الخاص بك إلى الرجوع إلى القاموس xaml مباشرة ، مثل ذلك:

<ResourceDictionary ...>
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Brushes.xaml" />
  </ResourceDictionary.MergedDictionaries>
  <Style x:Key="SomeStyle">
    <Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
  </Style>
</ResourceDictionary>

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

نصائح أخرى

الذهاب إلى الإدارة المركزية -> إدارة تطبيق الخدمة -> تطبيق خدمة ملف تعريف المستخدم.

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

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

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