在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源。本小节先讲述如何在XAML元素中引用字符串资源的相关知识点。

在XAML元素中可以通过使用x:Uid属性来引用资源文件中的字符串资源,这些字符串资源存储在资源文件中,下面介绍如何在项目中新建资源文件、添加字符串资源以及在XAML元素中通过x:Uid属性引用资源文件中的字符串资源。

在Visual Studio 2012中新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInXaml,在项目中新建一个名为“Strings”的文件夹,在“Strings”文件夹下添加一个子文件夹,命名为zh-CN,用于存储语言为中文的资源文件。在zh-CN文件夹中添加资源文件的操作方法是:右键单击“zh-CN”文件夹à添加à新建项,在“添加新项”窗口中选择“资源文件(.resw)”,命名为Resources,然后单击“添加”按钮。打开此资源文件在其中添加如图18-1所示的两个资源。

图18-1在Strings/zh-CN/Resources.resw资源文件中添加的两个资源

完成上述操作后就可以在控件中使用x:Uid属性来引用字符串资源。在MainPage.xaml文件的Grid元素中添加一个TextBlock控件,使用x:Uid属性引用StringResources.Text资源,代码如下所示:

<TextBlock Text="" x:Uid="StringResources" Margin="500,230,660,440" FontSize="25"/>

在上面的代码中,x:Uid属性将检索Strings/zh-CN/Resources.resw资源文件,把StringResources.Text资源的值“你好世界”赋给TextBlock控件的Text属性。在XAML元素中引用资源的资源名称是以“资源名.属性名”的形式在资源文件中写出的,在引用资源时使用x:Uid="资源名"检索资源,使用相应的属性进行接收资源值。这也是为什么图18-1所示的第一个资源是以.Text结尾,而在TextBlock控件中使用Text属性进行接收资源值。在TextBlock控件中,删除Text属性也可以达到一样的效果。这时运行程序,屏幕将显示“你好世界”,效果参见图18-3。

还可以在“Strings”文件夹下添加一个名为“en-US”的文件夹用于存储语言为英语的资源文件。在“en-US”文件夹下新建一个名为“Resources.resw”的资源文件,打开资源文件添加如图18-2所示的资源。

图18-2 在Strings/en-US/Resources.resw资源文件中添加的两个资源

这时更改系统语言首选项,TextBlock控件的Text属性值将根据系统语言首选项的更改而显示不同语言的文本信息。

更改语言首选项的操作步骤是:打开控制面板,选择“时钟、语言和区域”à“语言”。将希望设置为首选项的语言上移到语言列表的第一个位置。如果列表中没有需要使用的语言,可以单击“添加语言”按钮来将这些语言添加到语言列表中,并上移到列表顶端。

在本示例中使用的是中文(简体)和英语两种语言,如果语言列表的顶端不是这两者之一,则应用运行时将采用语言列表中下一种应用支持的语言显示文本信息。如果语言列表中没有英语或中文(简体),则应用会采用本身默认支持的语言来显示文本信息,默认语言写在项目文件的DefaultLanguage属性中,项目文件在项目所在文件夹中,它以.csproj或.vbproj为后缀名。可以用打开记事本的方式打开项目文件,查看并设置DefaultLanguage属性。

若要运行程序查看TextBlock控件显示两种不同语言的文本信息,分别使中文(简体)和英语作为语言首选项。当语言首选项为中文(简体)时,运行程序,在界面上会显示“你好世界”,效果如图18-3所示。当语言首选项为英语时,运行程序,在界面上会显示“Hello World”,效果如图18-4所示。

                     

          图18-3 首选语言项为中文(简体)时的效果         图18-4 首选语言项为英语时的效果

本小节讲解了如何在XAML元素中使用x:Uid属性引用资源文件中的字符串资源,下一小节将讲述如何在XAML元素中引用文件资源。

Windows Store App 全球化:在XAML元素中引用字符串资源的更多相关文章

  1. Windows Store App 全球化:在后台代码中引用字符串资源

    上文提到了引用字符串资源具有两种方式,分别是在XAML元素中和在后台代码中引用资源文件中的字符串资源.在第一小节已经介绍了如何在XAML元素中引用字符串资源,本小节将讲解在后台代码中引用字符串资源的相 ...

  2. Windows Store App 全球化:在XAML元素中引用文件资源

    上一小节讲解了如何在XAML元素中使用x:Uid属性引用资源文件中的字符串资源,通过改变语言首选项显示不同的运行结果.如果把字符串资源变成文件资源,就不能使用x:Uid属性来引用这些文件资源.本小节将 ...

  3. Windows Store App 全球化:引用类库资源

    前面几个小节介绍了如何引用自身项目的资源,而有时在应用程序开发过程中可能需要访问其他项目中的资源.例如,当几个人或十几个人一起设计一个解决方案时,每个人的工作都是不同的,编写的项目也是不同的,但是每个 ...

  4. Windows Store App 全球化:应用中设置语言选项

    当开发者将开发的应用上传到Windows应用商店以后,使用Windows 8系统的用户可能会看到并下载这些应用,而这些用户所在的区域或者所使用的语言可能都不相同,如果他们在使用应用程序时希望改变应用显 ...

  5. Windows Store App 全球化:引用分离资源文件中的资源

    大部分应用程序仅需要单个默认资源文件,例如Strings/zh-CN/Resources.resw,但是在某些应用程序中,最好将资源分离到多个资源文件中,以便更好地组织资源内容,这样就需要考虑如何引用 ...

  6. Windows Store App 全球化 资源匹配规则

    上面几个小节通过示例介绍了如何引用资源以及设置应用语言来显示不同语言的信息,这些示例都只是添加了简体中文和英语两种语言来显示资源,而在一些复杂的应用程序中,字符串资源可能会被定义成多种语言,文件资源也 ...

  7. Windows Store App 全球化 设置指定页面的语言

    上一小节介绍了通过在应用程序中添加语言设置选项来改变整个应用显示信息的语言,而有时用户只想对应用中某一页面信息的语言进行调整,这时就不能使用上一小节所讲述的知识来对应用进行设置.下面将通过一个示例介绍 ...

  8. Windows Store App 全球化:运行时响应语言变更

    在应用程序运行过程中,系统的语言.像素.对比度等系统设置可能会发生改变,应用程序应根据系统环境的改变及时做出适当的响应.为了解决这样的问题,可以在应用程序中为系统状态更改事件注册事件处理方法,当语言. ...

  9. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

随机推荐

  1. Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)

    本篇记录了HttpServlet的实现过程,主要讲述了如何依赖Servlet,GenericServlet实现的原理. HttpServlet实现过程:1.是一个Servlet,继承自GenericS ...

  2. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  3. winform 计算器

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. linux上使用amoeba实现MySql集群,以及读写分离,主从复制

    一.由于是MySql集群,所以就不可能只有一个MySql,需要多个MySql,具体安装步骤,可以参考http://www.cnblogs.com/ywzq/p/4882140.html这个地址进行安装 ...

  5. java 中继承,组合,重载,重写的实现原理 (转)

    我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...

  6. CSS简写指南(转)

    高效的css写法中的一条就是使用简写.通过简写可以让你的CSS文件更小,更易读.而了解CSS属性简写也是前端开发工程师的基本功之一.今天我们系统地总结一下CSS属性的缩写. 1.色彩缩写 色彩的缩写最 ...

  7. iOS 编码规范

    Coding Guidelines for Cocoa https://developer.apple.com/library/prerelease/content/documentation/Coc ...

  8. centos7 firewall 防火墙 命令

    为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优 ...

  9. Linux架构

    Linux架构   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我以下图为基础,说明Linux的架构(architecture ...

  10. XAF应用开发教程-内置Attribute功能列表

    在 XAF 框架,一些用来生成一个业务应用程序的信息是在Attribute中指定.您可以将属性应用到业务类 (或它的成员) 指定验证规则,指定如何对数据进行显示. 设置关系类等.本主题提供了有关在何处 ...