xaml – 如何在运行时更改Windows Phone APP语言?
发布时间:2020-12-14 05:53:39 所属栏目:Windows 来源:网络整理
导读:我按照这个例子来构建一个多语言应用程序: How to: Build a Localized Application for Windows Phone. 我成功地将资源数据绑定到这样的文本: TextBlock x:Name="ApplicationTitle" Text="{Binding Path=MultiLangResources.Mainpage_Welcome,Source={Stat
我按照这个例子来构建一个多语言应用程序:
How to: Build a Localized Application for Windows Phone.
我成功地将资源数据绑定到这样的文本: <TextBlock x:Name="ApplicationTitle" Text="{Binding Path=MultiLangResources.Mainpage_Welcome,Source={StaticResource MultiLang}}"/> 我试图改变Thread.CurrentThread.CurrentUICulture,我可以用代码输出正确的密钥: ApplicationTitle.Text = LangResource.Mainpage_Welcome; 但是,绑定文本永远不会更新. 如何使绑定文本更新像普通绑定? 有没有人可以帮我解决这个问题? public class MultiLang : INotifyPropertyChanged { public MultiLang() { } private static MLTest.LangResource multiLangResources = new GigapodV2.LangResource(); public MLTest.LangResource MultiLangResources { get { return multiLangResources; } set { if (value != multiLangResources) { multiLangResources = value; NotifyPropertyChanged("MultiLangResources"); } } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string property) { PropertyChangedEventHandler handler = PropertyChanged; if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(property)); } } } 解决方法
LangResource类本身不可观察,因此不会观察到它的任何绑定属性.而且,手机不会因为您即时更改而通知所有与CurrentCulture相关的属性.
否则,以这种方式进行语言更改将需要重新启动您的应用.但我会建议你小心这一点,因为操作系统本身允许语言交换,这意味着你需要有一个非常好的理由让你的应用程序允许它本身. 解决方案是创建一个包装类,在更改CurrentCulture时通知所有属性它们已更新.使用Simon的NotifyPropertyWeaver [DependsOn]属性可能会让这很容易. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 诊断组策略对象无法访问的原因
- WiX ServiceControl在卸载时停止服务,但不要在安装时启动它
- windows-server-2003 – 如何恢复Windows Server 2003 VMWa
- Windows可以配置为仅使用单个硬件线程吗?
- 如何改进Windows Server 2008 R2以处理多个连接?
- 难道真的不可能写一个隐藏Windows密码的php cli密码提示吗?
- 是否有类似于Windows Server的Docker Containers的技术?
- 在WPF中的所有Windows中应用按钮样式
- windows-server-2012 – 无法在Server 2012上安装SQL Serve
- 在Windows Mobile 6,Windows Phone 7,Android和iPhone上编写
推荐文章
站长推荐
- windows-server-2008 – 计算机无法获取域控制器
- CUDA与Windows Forms / WPF集成
- windows-server-2003 – Active Directory用户名
- 安装了新的Windows服务,无法启动:“系统错误2 …
- 如何以编程方式创建Microsoft Access数据库?
- xaml – 访问文本框的背景颜色
- 如何在Windows上仅安装PostgreSQL的客户端工具?
- Win10安装Oracle Database 18c (18.3)
- xaml – 为什么TextBlock从文本中修剪结尾的空格
- windows-8 – Windows 8调度程序中Command命令参
热点阅读