StaticResource, где ресурс находится во внешней сборке?
По сути, я хочу сохранить все свои ресурсы XAML во внешней сборке (для моих стилей). У меня есть ссылка на эту внешнюю сборку в моем приложении.
Есть ли какое-то отношение к сателлитным сборкам или что-то в этом роде, или как мне получить доступ к этим стилям, чтобы мое приложение могло иметь теги StaticResource без ошибок компиляции?
1 ответ
Решение
Предполагая, что вы сохраняете свои стили в ResourceDictionary
в другой сборке вам просто нужно объединить его с текущими ресурсами (находятся ли они на Window
или же UserControl
или что угодно).
Если мы предположим, что
- ваша другая сборка называется 'external.assembly.name'
ResourceDictionary
находится под пространством имен ресурсов; а также- словарь называется "MyStyles.xaml"
... тогда вы можете объединить словари, как показано ниже:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/external.assembly.name;component/Resources/MyStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- other resources go here -->
</ResourceDictionary>
</UserControl.Resources>