Pergunta sobre xaml, resourcedictionary, c#, .net, wpf – Como importar um ResourceDictionary para outro, no WPF?

20

É possível adicionar um dicionário de recursos a outro? Obrigado por qualquer ajuda.

Sua resposta

4   a resposta
1

Algo como:

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

Pode ser o que você está procurando. Usamos código como este em nossos módulos Prism.

0

é difícil dar uma resposta específica. Aqui estão alguns recursos possivelmente relevantes sobre a fusão de dicionários de recursos:

http://msdn.microsoft.com/pt-br/library/aa350178.aspx

4

mostra como mesclar dicionários de recursos em xaml:

<code><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>
</code>

Isso mostra a fusão de dois dicionários de recursos adicionais em outro dicionário de recursos.

(Observe que o pedido pode se tornar importante se você tiver estilos padrão definidos em mais de um local, pois eles se sobreporão)

20

eDictionary de abertura):

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

Há um problema: cada vez que você mescla dicionários, você efetivamente cria uma cópia do dicionário mesclado. E é recursivo - se você tiver Dict3.xaml e Dict4.xaml que carregam o Dictionary2.xaml, você terá três instâncias do Dictionary1.xaml criadas

A solução é umSharedResourceDictionary. A implementação no tutorial deve ser vista como um ponto de partida e provavelmente precisará de algum nível de ajustes - dependendo do cenário de uso. Google "wpf SharedResourceDictionary" para algumas dicas e soluções.

Da resposta paraessa questão porXAMeLi

Perguntas relacionadas