2009-06-03 20 views
16

Se si dispone di un ResourceDictionary in un progetto, è possibile creare un altro progetto che utilizza le risorse definite nel primo progetto? Si noti che entrambi i progetti sono applicazioni WPF, non ControlLibraries.È possibile condividere un file ResourceDictionary tra più progetti?

Grazie !!

+0

Duplicato? http://stackoverflow.com/questions/338056/wpf-resource-dictionary-in-a-separate-assembly –

risposta

28

Sì, certo che è possibile, a patto che Progetto B ha un riferimento a Progetto A.

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

allora si può solo utilizzare le risorse definite nel YourResourceFile.xaml.

+0

Oh snap. Ci sto provando! Grazie!! – Pwninstein

+0

Non lo sapevo, bel trucco! –

+0

Cosa succede se i progetti non condividono un riferimento? Nel mio caso sto usando PRISM e dichiaro stili in Shell. Mi piacerebbe poter riutilizzare alcuni dei colori definiti. – R4cOON

10

Ho scoperto che dovevo fare riferimento all'assembly stesso e non utilizzare il nome di un progetto. Inoltre, non avevo bisogno di usare la sintassi pack: /// per farlo funzionare.

Questa risposta sulla questione duplicato specifica il formato da utilizzare (posso verificare che questa sintassi funziona in .NET 4.0): https://stackoverflow.com/a/10216253/1260563

particolare (da quando mi dimentico sempre la componente pensando che è una cartella qualcuno sta usando):

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

Quindi, se si dispone di un assembly Abc.Def.dll e un file in quella DLL chiamato Xyz.xaml al livello principale si usa:

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

Nota: il ricercatore 7 ha sottolineato che dovevo fare riferimento al gruppo stesso.

+0

Grazie per aver fornito esempi specifici e sottolineato la necessità della parte componente del percorso. Ciò ha aiutato più della mezza dozzina di altre soluzioni che ho trovato. –

Problemi correlati