У меня есть файлы словаря ресурсов (MenuTemplate.xaml, ButtonTemplate.xaml и т. Д.), Которые я хочу использовать в нескольких отдельных приложениях. Я мог бы добавить их в сборки приложений, но было бы лучше, если бы я скомпилировал эти ресурсы в одну сборку и чтобы мои приложения ссылались на него, верно?
После сборки сборки ресурса, как я могу ссылаться на нее в App.xaml моих приложений? В настоящее время я использую ResourceDictionary.MergedDictionaries для объединения отдельных файлов словаря. Если у меня есть их в сборке, как я могу ссылаться на них в xaml?
.net
wpf
xaml
controltemplate
resourcedictionary
Гус Кавальканти
источник
источник
Ответы:
Проверьте синтаксис URI пакета . Вы хотите что-то вроде этого:
источник
AppDomain.AssemblyResolve
чтобы помочь ему найти сборку.Например, просто чтобы ответить на 15 секунд -
Скажем, у вас есть файл "styles.xaml" в библиотеке WPF с именем "common", и вы хотите использовать его из основного проекта приложения:
ура
источник
Я работаю с .NET 4.5 и не могу заставить это работать ... Я использовал WPF Custom Control Library. Это сработало для меня в конце концов ...
источник: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
источник
Resource-Only DLL - вариант для вас. Но это не обязательно, если вы не хотите изменять ресурсы без перекомпиляции приложений. Иметь только один общий файл ResourceDictionary также вариант. Это зависит от того, как часто вы меняете ресурсы и т. Д.
MyAssembly - просто имя сборки без расширения
FolderStructureInAssembly - если ваши ресурсы находятся в папке, укажите структуру папок
Когда вы делаете это, лучше знать о siteOfOrigin .
источник
Для UWP:
источник
Использование XAML:
Если вы знаете другую
assembly
структуру и хотите использовать кодresources
in c # , используйте следующий код:Вывод: если мы хотим использовать
ResourceDictionary
RD1.xaml
ProjectWpfControlLibrary1
вStackOverflowApp
проекте.Структура проектов :
Ресурсный словарь:
Вывод кода:
PS: все
ResourceDictionary
файлы должны иметьBuild Action
как 'Resource
' или 'Page
'.Используя C #:
источник