打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
WPF的一种动态切语言方法

使用 resx 文件,可以动态切换语言,

新建Lang.zh-CN.resx  Lang.en-US.resx 资源文件

新建空类Lang.cs

新建如下类:

public class LanguageManager : INotifyPropertyChanged    {        private readonly ResourceManager _resourceManager;        private static readonly Lazy<LanguageManager> _lazy = new Lazy<LanguageManager>(() => new LanguageManager());              public static LanguageManager Instance => _lazy.Value;        public event PropertyChangedEventHandler PropertyChanged;        private LanguageManager()        {            _resourceManager = new ResourceManager(typeof(Lang));        }        public string this[string name]        {            get            {                if (name == null)                {                    throw new ArgumentNullException(nameof(name));                }                return _resourceManager.GetString(name);            }        }        public void ChangeLanguage(CultureInfo cultureInfo)        {            CultureInfo.CurrentCulture = cultureInfo;            CultureInfo.CurrentUICulture = cultureInfo;            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item[]"));        }    }
View Code

使用方法:

 <TextBlock FontSize="20" Margin="10" Text="{Binding [String1], Source={x:Static local:LanguageManager.Instance}}"/>
View Code

切换语言:

LanguageManager.Instance.ChangeLanguage(new CultureInfo("zh-CN"));
View Code
源码已上传至Gitgub

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vs2010 c# 资源文件 在 国际化 (WinForm)
在.NET中读取嵌入和使用资源文件的方法
.NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇]
.NET(C#):使用ResourceManager类型
.NET 复习笔记之资源管理 - Visual Studio 中资源文件的使用
C#实现多语言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服