在代码中选择多个资源字典之一 - WPF

时间:2014-01-14 23:03:48

标签: c# wpf resourcedictionary

我开发了几个WPF资源字典,它们具有不同的样式,用于组合在一起的控件。

在我的新项目中,我无法确定哪个最喜欢,所以我想要一个设置让用户在它们之间切换。

目前我在App.xaml文件中定义资源字典,如下所示:

<Application.Resources> 
      <ResourceDictionary Source="/Styles/BlueStyle.xaml" />     
</Application.Resources>

是否可以将其定义为C#代码,以便我可以从样式列表中选择(可能来自下拉框)而不是被锁定为一个。

提前致谢

1 个答案:

答案 0 :(得分:1)

将在运行时设置资源:

Application.Current.Resources.Source = new Uri("/Styles/BlueStyle.xaml", UriKind.RelativeOrAbsolute);

或者在ComboBox_SelectionChanged中(包含BlueStyleRedStyle等项目):

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);