Pergunta

Se eu tiver um recurso em um projeto, é possível criar outro projeto que use recursos definidos no primeiro projeto? Observe que ambos os projetos são aplicativos WPF, não de bibliotecas.

Obrigado!!

Foi útil?

Solução

Sim, é claro que isso é possível, desde que o Projeto B tenha uma referência ao Projeto A.

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>

Em seguida, você pode usar os recursos definidos no seu ressecamento.xaml.

Outras dicas

Descobri que tinha que fazer referência à própria montagem e não usar um nome de projeto. Eu também não precisei usar o pacote: /// sintaxe para fazer isso funcionar.

Esta resposta na pergunta duplicada especifica o formato a ser usado (posso verificar se esta sintaxe funciona no .NET 4.0):https://stackoverflow.com/a/10216253/1260563

Especificamente (já que sempre esqueço a parte do componente pensando que é uma pasta que alguém está usando):

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>

Portanto, se você tiver uma montagem abc.def.dll e um arquivo nessa DLL chamado xyz.xaml no nível raiz que você usaria:

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>

Nota: Resharper 7 apontou que eu tinha que fazer referência à própria montagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top