#c# #wpf #themes #skinning
#c# #wpf #темы #Скининг
Вопрос:
Я хочу одновременно динамически изменять цвет текста (передний план) всех элементов управления в приложении во время выполнения. Есть ли рекомендуемый способ сделать это?
Спасибо.
Ответ №1:
Рекомендуемый способ — определить все возможные темы при разработке в отдельных файлах. Затем измените тему во время выполнения, что в конечном итоге изменит цвет переднего плана элементов управления.
Смотрите этот простой пост, в нем объясняется, как вы можете изменять темы во время выполнения.
//declare a resource dictionary
ResourceDictionary skin = new ResourceDictionary();
//load your theme
skin.Source = new Uri(@”ThemeName.xaml”, UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Clear();
//apply it
Application.Current.Resources.MergedDictionaries.Add(skin);
Если вы хотите узнать больше о темах, перейдите на эту страницу. В нем есть 9 примеров тем, которые вы можете загрузить и посмотреть, как создаются темы
Ответ №2:
Используйте стили, ресурсы, словари ресурсов и применяйте их во время выполнения.
Вот хорошая статья о том, как вы можете это сделать: