WPF(MVVM) 利用资源字典实现中英文动态切换

时间:2024-03-10 09:27:54

1、首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面。

2、将两个资源字典添加到App.xaml中,这里注意下,因为两个字典中有同样字符,如果没有动态更改,默认后添加的生效

    <ResourceDictionary  Source="/Resourcedictionaries\en-us.xaml"/>
    <ResourceDictionary  Source="/Resourcedictionaries\zh-cn.xaml"/>

3、 如何动态切换资源字典

 System.Windows.ResourceDictionary resource = new System.Windows.ResourceDictionary();//定义一个资源字典的类型
            string requestedCulture = @"/Resourcedictionaries\zh-cn.xaml";设置资源字典的路径
            resource.Source = new Uri(requestedCulture, UriKind.RelativeOrAbsolute);//将路劲存进资源字典
            Application.Current.Resources.MergedDictionaries.Remove(resource);删除相关字典
            Application.Current.Resources.MergedDictionaries.Add(resource);添加字典

4:如何调用资源字典的样式 前端我们一般DynamicResource +key

后台则是FindResource("资源字典的KEY")as string

但是在MVVM 模式下是得不到这个方法的 所以应该用到Application.Current.TryFindResource("资源字典的KEY) as string;这个方法来获取资源字典的内容