2012-05-10 16 views

Respuesta

1

Algo así como:

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

podría ser lo que estás buscando. Usamos un código como este en nuestros Prism Modules.

3

Un fragmento directamente de un proyecto SketchFlow estoy trabajando en eso muestra cómo combinar diccionarios de recursos en 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> 

Esto muestra la fusión de dos diccionarios de recursos adicionales en otro diccionario de recursos.

(Tenga en cuenta que el orden puede llegar a ser importante si tiene estilos predeterminados definidos en más de un lugar, ya que anularán entre sí)

19

En Dictionary2.xaml definir MergedDictionaries (justo después de la etiqueta de apertura ResourceDictionary):

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

hay una trampa: cada vez que fusiona diccionarios crea efectivamente una copia del diccionario fusionado. Y es recursivo: si tiene Dict3.xaml y Dict4.xaml que ambos cargan Dictionary2.xaml, tendrá tres instancias de Dictionary1.xaml creado

La solución es SharedResourceDictionary. La implementación en el tutorial debe verse como un punto de partida y probablemente necesitará algún nivel de ajuste, dependiendo del escenario de uso. Google "wpf SharedResourceDictionary" para algunos problemas y soluciones.

De la respuesta a this question por XAMeLi

Cuestiones relacionadas