WPF动态切换语言动态切换字典
<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="1.xmal"></ResourceDictionary> <ResourceDictionary Source="2.xmal"></ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
描述
合并多个外部资源字典成为本地字典。当需要合并更多字典的时候只要在ResourceDictionary.MergedDictionaries节中顺序增加引用。
特别提示
合并字典(MergedDictionaries 集合中的字典)中对同一对象的同一子元素进行定义的时候,会产生覆盖效果:在这种情况下,所返回的资源将来自在 MergedDictionaries 集合中最后一个找到的字典。(在这里会显示myresourcedictionary2.xaml中的定义)。
合并字典(MergedDictionaries 集合中的字典)中对同一对象的不同子元素定义的时候会产生叠加效果。
动态换肤,也就是后台更改合并资源
合并资源放在APP级:姜彦201808191332
Application.Current.Resources.MergedDictionaries.Clear();
ResourceDictionary newRD = new ResourceDictionary();
newRD.Source = new Uri("1.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Add(newRD);
合并资源放在Window级: 非常有效 姜彦201808191332
this.Resources.MergedDictionaries.Clear();
ResourceDictionary newRD = new ResourceDictionary();
newRD.Source = new Uri("1.xaml", UriKind.Relative);
this.Resources.MergedDictionaries.Add(newRD);
如果有多个资源合并在一起,只想更改某个资源,可以这样更改 非常有效 姜彦201808191332
ResourceDictionary newRD = new ResourceDictionary();newRD.Source = new Uri("1.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries[0] = newRD;
自己备注:根据你在App.xaml中的位置,决定数组的index 非常有效 姜彦201808191332
例如:
ResourceDictionary newRD = new ResourceDictionary();
newRD.Source = new Uri("/Utility.Tool.Language;component/Language/en_US.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries[7] = newRD;
![](https://files-cdn.cnblogs.com/files/jiangyan219/Alipay.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
![](https://files-cdn.cnblogs.com/files/jiangyan219/WeChat.bmp)
我写的东西能让你能懂,那是义务
毕竟占用了你生命中的宝贵的时间和注意力
要是你还能喜欢我的作品,那就是缘分了
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【青青子衿】!