none
WPF 后台代码调用资源的情况下 如何动态切换语言(国际化)? RRS feed

  • 问题

  • 正常情况下,切换语言很简单,只需要准备几套资源文件,再通过DymicResource的方式进行调用即可。但由于某些文字的展示包含了一些逻辑性,只能在后台代码中通过Application.Current.FindResource的方式进行调用,这就造成了需要重新启动项目才能实现语言的切换,请问有没有更好的方式能实现资源的动态切换而无需重新加载。
    2019年7月30日 9:11

答案

  • 先将资源文件ResourceDictionary.xaml全部添加到App

    .xaml中,然后在切换语言的时候遍历Application.Current.Resources.MergedDictionaries,把你想要的语言对应的资源删掉然后再重新添加进去,这样就可以动态切换语言了。

    遍历
    {
        if(我想要的语言)
        {
          移除Remove;
          添加Add;
          break;
        }
    }


    • 已标记为答案 bp_l 2019年9月27日 9:29
    2019年8月1日 3:16

全部回复

  • 你看这个可以不

    https://www.cnblogs.com/T-ARF/p/10934176.html

    2019年7月30日 13:56
  • 先将资源文件ResourceDictionary.xaml全部添加到App

    .xaml中,然后在切换语言的时候遍历Application.Current.Resources.MergedDictionaries,把你想要的语言对应的资源删掉然后再重新添加进去,这样就可以动态切换语言了。

    遍历
    {
        if(我想要的语言)
        {
          移除Remove;
          添加Add;
          break;
        }
    }


    • 已标记为答案 bp_l 2019年9月27日 9:29
    2019年8月1日 3:16