Actualmente estoy trabajando en tener diccionarios de estilos y plantillas que pueda aplicar dinámicamente a mi aplicación. Antes de este "nuevo quería" comportamiento dinámico, que tenía varios diccionarios de recursos, uno para cada control de estilo, que se fusionó en el App.xaml: Recurso estático compartido en diccionarios fusionados
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ColorsDictionary.xaml"/>
<ResourceDictionary Source="ControlsTemplatesDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Ahora, me gustaría que mi solicitud para ser de estilo, así que decidí fusionar todos mis recursos previos en uno nuevo llamado "MyFirstTemplates" y agregar solo este diccionario a la App.xaml.
Nuevo diccionario "MyFirstTemplates.xaml":
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">"
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ColorsDictionary.xaml"/>
<ResourceDictionary Source="ControlsTemplatesDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Nueva App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyFirstTemplates.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type Window}"/>
</ResourceDictionary>
</Application.Resources>
Nota: El estilo por defecto para la ventanaes corregir un error de WPF 4, ver Adding a Merged Dictionary to a Merged Dictionary
Ahora que he hecho este cambio, no puedo usar un recurso de color de "ColorsDictionary.xaml" como StaticResource en "ControlsTemplateDictionary.xaml" más. Si cambio de nuevo a la fusión de estos archivos en la aplicación.xaml, todo funciona. Para que funcione, tengo que cambiar estos StaticResource por DynamicResource. ¿Tienes alguna idea de por qué esto ya no funciona?
Gracias :-)
Gracias por su conocimiento :-) –