相关文章推荐
刚分手的茶壶  ·  input框的点击焦点取消·  5 月前    · 
刚分手的茶壶  ·  1-5 Handling Multiple ...·  10 月前    · 
刚分手的茶壶  ·  VS2017 ...·  11 月前    · 
英俊的键盘  ·  客户端网络配置 - SQL Server ...·  12 分钟前    · 
有胆有识的小狗  ·  Swift withUnsafeBytes ·  36 分钟前    · 
刚失恋的啤酒  ·  swift5弃用方法'withUnsafeB ...·  36 分钟前    · 
活泼的卤蛋  ·  Get-Process ...·  47 分钟前    · 
另类的麦片  ·  java.lang.IllegalArgum ...·  47 分钟前    · 
魁梧的卤蛋  ·  linnux 3 - CanntBelieve ·  2 小时前    · 
星星上的斑马  ·  flex Vector - ...·  2 小时前    · 
飘逸的水龙头  ·  Validations for Enum ...·  2 小时前    · 
谈吐大方的香菜  ·  jQuery css() 方法 | ·  2 小时前    · 

WPF 实现多语言支持

例如实现中英文切换
1、使用资源字典,首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面【注意:添加xmlns:s="clr-namespace:System;assembly=mscorlib】

zh-cn.xam如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:s="clr-namespace:System;assembly=mscorlib"
                     xmlns:local="clr-namespace:WpfApplication">
     <s:String x:Key="buttonNewTaskWindow">新建任务</s:String>
     <s:String x:Key="buttonProperty">任务属性</s:String>
< /ResourceDictionary>

en-us.xaml如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:s="clr-namespace:System;assembly=mscorlib"
                     xmlns:local="clr-namespace:WpfApplication">
     <s:String x:Key="buttonNewTaskWindow">New Task</s:String>
     <s:String x:Key="buttonProperty">Task Property</s:String>
</ResourceDictionary>

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

<Application x:Class="WpfApplication.App"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              StartupUri="MainWindow.xaml">
     <Application.Resources>
      <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
                 <ResourceDictionary Source="Resources\en-us.xaml"/>
                 <ResourceDictionary Source="Resources\zh-cn.xaml"/>
             </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
     </Application.Resources>
< /Application>

3、在界面设计器中需要显示的位置添加动态资源

<Button x:Name="buttonNewTaskWindow" Content="{DynamicResource buttonNewTaskWindow}"/>
<Button x:Name="buttonProperty" Content="{DynamicResource buttonProperty}"/>

4、动态切换,重新加载资源文件
代码如下:

List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();
foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries)
      dictionaryList.Add(dictionary);
string requestedCulture = @"Resources\en-us.xaml";
ResourceDictionary resourceDictionary = dictionaryList.FirstOrDefault(d => d.Source.OriginalString.Equals(requestedCulture));
Application.Current.Resources.MergedDictionaries.Remove(resourceDictionary);
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);

5、执行以上代码,即可完成切换

引用:https://my.oschina.net/u/4350132/blog/3957434

WPF 实现多语言支持例如实现中英文切换1、使用资源字典,首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面【注意:添加xmlns:s="clr-namespace:System;assembly=mscorlib】zh-cn.xam如下:&lt;ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm
WPF应用程序中搭建多语言支持(Multilingual Support)是我最近在做的一件事,对于不使用英语的人士而言,此举提高了程序的可用性。实现起来要完成以下目标: 一个版本容纳多种语言. 这就意味着不要创建单独的英语版本、法语版本、日语版本等等。 许多电子产品(例如电视和数码相机)在同一模块中支持语言。你不需要购买不同模块或给软件打补丁来得到与默认设置不同的语言 允许在运行时切换接口语言. 这就是说不需要关闭应用程序并配置操作系统环境,一切都交给安装器。 首次运行选择合适语言. W应用程序第一次运行,就把接口语言设为操作系统的系统语言。这点很有意义--法国用户喜欢安装、运行、并马上使用软件,而不会再一个不熟悉的应用程序中找到切换语言的地方。 允许UI可拓展以便翻译,缩减可能的裁剪文本。 http://www.oschina.net/translate/building-multilingual-wpf-applications
促使程序赢得更多客户的最好、最经济的方法是使之支持多国语言,而不是将潜在的客户群限制为全球近70亿人口中的一小部分。本文介绍四种实现WPF应用程序支持多国语言的解决方案。 效果如下图: Language - en-US (英文) Language - zh-CN (中文) 一、使用LocBaml工具 二、使用资源字典文件 三、使用.resx资源文件 保证资源文件头部有xmlns:s="clr-namespace:System;assembly=mscorlib",里面的键值会加不进去。 2:资源字典完成之后,需要在配置文件中进行配置. <Application.Resources> 当时,软件主要针对的是英语国家。后来因业务需要,增加了日本地区,需要一套可切换的日语操作界面。 一方面,由于软件早期没有考虑过多语言,改造幅度比较大;另一方面,由于翻译问题,需要日本方面,可以即时修改翻译的内容。总结一下需求: 软件需全面修改,包括前... 2. 播放功能模块:实现对WAV、MID、MP3、WMV、AVI等格式的多媒体文件的播放功能设计。 3. 文件加载系统:实现播放列表加载多个多媒体文件、自定义播放顺序等功能的设计。 4. 文件播放系统:实现连续播放、记忆播放、播放/暂停、停止等功能的设计。 研究的基本思路和方法、技术路线、实验方案及可行性分析 基本思路和方法: 1. 运用UML(Unified Modeling Language:统一建模语言)对多媒体视频播放器系统进行功能需求分析和设计。 2. 使用XAML标记语言设计构造简约友好、美丽大方的用户界面。 3. 使用WPF技术实现多媒体视频播放器的播放功能模块、文件加载系统、文件播放系统等功能的设计。 4. 通过课题的研究,实现多媒体视频播放器系统的设计,以及撰写毕业设计论文。
如果你的程序需要本地化,考虑的因素诸多,例如:当文本改变后,控件的当前高度,宽度 是否合适。所在的位置是否合适、字体、布局是否合适?如果已经构建了一个真正自适应的布局,就不会有问题。用户界面应当能够调整自身以适应动态的内容。下面是建议采用的一些WPF设计原则: 不要使用硬编码的宽度或高度 将Window.SizeToContent 属性设置为Width、Height 或 Width...
Metro插件系统系列就暂时停一下,这次我们讨论一下WPF的资源本地化实现,主要用到的:CultureInfo,ResourceManger,MarkupExtension,RESX文件,这些都是.NET框架提供的。 项目结构: 运行结果: 可在程序运行时,实时切换语言 CultureInfo   CultureInfo类表示有关特定区域性的信息,包括区域性的名称、书写体系和
WPF是一种用于创建窗体应用程序的框架,允许开发人员使用多种语言编写应用程序。多语言资源文件是一种用于在WPF应用程序中支持语言的技术,通过使用多语言资源文件,开发人员可以很容易地将应用程序的界面文本本地化为不同的语言。 多语言资源文件通常是以XAML文件的形式存在,其中包含了不同语言版本的界面文本。通过在WPF应用程序中使用这些多语言资源文件,开发人员可以根据用户的语言设置动态地加载不同的界面文本,从而实现语言支持。 在WPF中使用多语言资源文件,开发人员首先需要创建不同语言版本的XAML文件,并将其存储在特定的文件夹中。然后,他们可以使用WPF的资源引用机制来引用这些多语言资源文件,在需要显示界面文本的地方使用对应的资源引用即可。当用户在应用程序中切换语言时,WPF会根据用户的语言设置自动加载对应的多语言资源文件,从而实现界面文本的切换。 总的来说,WPF语言资源文件为开发人员提供了一种便捷的方式来实现应用程序的多语言支持,使得应用程序可以更好地适应不同语言环境的用户需求。通过合理地使用多语言资源文件,开发人员可以为他们的WPF应用程序赋予更强大的国际化能力。
 
推荐文章