网上搜了下,找到的资料全部都是介绍用“资源字典”来做多语言支持。我自己尝试了下,也确实是相当地方便。但是目前遇到难题没办法解决了:当做UI界面时,这个资源字典用xaml语言引用倒是挺方便的。 但是内部访问时,却怎么也找不到对应的方法。如果在 viewmodels 中,需要弹出提示框,这时如何引用资源字典中定义的字符串呢? 谢谢

解决方案 »

  1.   

    弹出信息的多语言可以用.net本身的Resource文件。这样相当于有两个字典,一个是xaml用的,另外一个是vm的代码里用的。
    或者不用wpf提供的MessageBox,而是自己创建一个Window作为MessageBox,这样就可以只用一套给xaml用的字典了。
      

  2.   

    通过创建不同语言版本的资源文件,如:zh-CN.xaml,en.xaml,文件里内容格式一般为
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:sys="clr-namespace:System;assembly=mscorlib">    <sys:String x:Key="btn_Ok" >
            确定
        </sys:String>
        <sys:String x:Key="btn_Delete">
            删除
        </sys:String>
       <sys:String x:Key="btn_Back" >
            返回
        </sys:String>
    </ResourceDictionary> 
    在程序启动时进行判断读取相关版本的资源文件内容。希望对你有所帮助