我开发了几个WPF资源字典,它们具有不同的样式,用于组合在一起的控件。
在我的新项目中,我无法确定哪个最喜欢,所以我想要一个设置让用户在它们之间切换。
目前我在App.xaml文件中定义资源字典,如下所示:
<Application.Resources>
<ResourceDictionary Source="/Styles/BlueStyle.xaml" />
</Application.Resources>
是否可以将其定义为C#代码,以便我可以从样式列表中选择(可能来自下拉框)而不是被锁定为一个。
提前致谢
答案 0 :(得分:1)
将在运行时设置资源:
Application.Current.Resources.Source = new Uri("/Styles/BlueStyle.xaml", UriKind.RelativeOrAbsolute);
或者在ComboBox_SelectionChanged中(包含BlueStyle
和RedStyle
等项目):
ResourceDictionary dictionary = new ResourceDictionary();
dictionary.Source = new Uri(@"/Styles/" + comboBox.SelectedValue.ToString() + ".xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(dictionary);