2012-05-10 20 views

risposta

1

Qualcosa di simile:

ResourceDictionary resources = new ResourceDictionary(); 
resources.Source = new Uri("/MyModule;component/MyModule.xaml", 
    UriKind.RelativeOrAbsolute); 
Application.Current.Resources.MergedDictionaries.Add(resources); 

potrebbe essere quello che stai cercando. Usiamo il codice come questo nei nostri moduli Prism.

3

Un frammento di dritta da un progetto SketchFlow sto lavorando su che dimostra come unire dizionari di risorse in XAML:

<Application.Resources> 
    <!-- Resources scoped at the Application level should be defined here. --> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Microsoft.Expression.Prototyping.SketchControls;component/ScrollViewerStyles.xaml"/> 
      <ResourceDictionary Source="/[ProjectABC];component/[fileXYZ].xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Questo dimostra la fusione di due dizionari di risorse aggiuntive in un altro dizionario risorse.

(Si noti che l'ordine può diventare fondamentale se avete stili di default definiti in più di un posto in quanto saranno ignorare l'altro)

19

In Dictionary2.xaml definire MergedDictionaries (subito dopo il tag di apertura ResourceDictionary):

<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="/Path/to/Dictionary1.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

c'è un problema: ogni volta che si uniscono dizionari si crea effettivamente una copia del dizionario unito. Ed è ricorsivo: se hai Dict3.xaml e Dict4.xaml che caricano entrambi Dictionary2.xaml, avrai tre istanze di Dictionary1.xaml create

La soluzione è una SharedResourceDictionary. L'implementazione nel tutorial dovrebbe essere vista come un punto di partenza e probabilmente richiederà un certo livello di ottimizzazione, a seconda dello scenario di utilizzo. Google "wpf SharedResourceDictionary" per alcuni trucchi e soluzioni.

Dalla risposta allo this question da XAMeLi

Problemi correlati