Eu tenho arquivos de dicionário de recursos (MenuTemplate.xaml, ButtonTemplate.xaml, etc) que desejo usar em vários aplicativos separados. Eu poderia adicioná-los aos assemblies dos aplicativos, mas é melhor se eu compilar esses recursos em um único assembly e meus aplicativos fizerem referência, certo?
Após a montagem do recurso, como referenciá-lo no App.xaml dos meus aplicativos? Atualmente, uso ResourceDictionary.MergedDictionaries para mesclar os arquivos de dicionário individuais. Se eu os tiver em uma montagem, como posso referenciá-los no xaml?
.net
wpf
xaml
controltemplate
resourcedictionary
Gus Cavalcanti
fonte
fonte
Respostas:
Confira a sintaxe do URI do pacote . Você quer algo assim:
fonte
AppDomain.AssemblyResolve
para ajudá-lo a encontrar a montagem.Um exemplo, apenas para tornar isso uma resposta de 15 segundos -
Digamos que você tenha "styles.xaml" em uma biblioteca WPF denominada "common" e deseje usá-lo no seu projeto principal de aplicativo:
Felicidades
fonte
Estou trabalhando com o .NET 4.5 e não consegui fazer isso funcionar ... Eu estava usando a Biblioteca de controle personalizado do WPF. Isso funcionou para mim no final ...
fonte: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
fonte
DLL apenas de recurso é uma opção para você. Mas não é necessário necessariamente, a menos que você deseje modificar recursos sem recompilar aplicativos. Ter apenas um arquivo ResourceDictionary comum também é uma opção. Depende da frequência com que você altera recursos e etc.
MyAssembly - Apenas o nome do assembly sem extensão
FolderStructureInAssembly - Se seus recursos estiverem em um grupo, especifique a estrutura da pasta
Quando você está fazendo isso, é melhor conhecer também o siteOfOrigin .
fonte
Para UWP:
fonte
Usando XAML:
Se você conhecer a outra
assembly
estrutura e quer que oresources
no c # código, em seguida, usar o código abaixo:Saída: se queremos usar o
ResourceDictionary
RD1.xaml
ProjectWpfControlLibrary1
noStackOverflowApp
projeto.Estrutura dos Projetos :
Dicionário de Recursos:
Saída de código:
PS: Todos os
ResourceDictionary
arquivos devem terBuild Action
como 'Resource
' ou 'Page
'.Usando c #:
fonte