c# wpf data-binding xaml resourcedictionary

c# - Cambio de diccionarios de recursos wpf en tiempo de ejecución



data-binding xaml (1)

Estoy tratando de construir una aplicación wpf que le permita al usuario cambiar el tema en tiempo de ejecución. Lo que he hecho hasta ahora es crear un diccionario de recursos con todos los colores para la aplicación definida en él y luego me estoy vinculando a este diccionario en el xaml.

A continuación se muestra el código que tengo para cambiar el diccionario de recursos:

if (System.IO.File.Exists(fileName)) { using (FileStream fs = new FileStream(fileName, FileMode.Open)) { ResourceDictionary dic = (ResourceDictionary)XamlReader.Load(fs); Resources.MergedDictionaries.Clear(); Resources.MergedDictionaries.Add(dic); } }

Este código funciona bien, y sé que está cambiando el diccionario de recursos, pero no actualiza los elementos que ya se muestran en la pantalla. Mi pregunta es: ¿cómo puedo actualizar o volver a vincular la pantalla para tener en cuenta el nuevo diccionario de recursos?

Gracias

sm


En mi caso, simplemente tuve que cambiar:

Resources.MergedDictionaries.Clear(); Resources.MergedDictionaries.Add(dic);

a:

Application.Current.Resources.MergedDictionaries.Clear(); Application.Current.Resources.MergedDictionaries.Add(dic);