在应用程序中可以通过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. EBS R12.2 创建应用层的启动和关闭脚本

    Create the following files to start and stop R12. application tier. Change the apps and weblogic pas ...

  2. Leetcode: Battleships in a Board

    Given an 2D board, count how many different battleships are in it. The battleships are represented w ...

  3. Winform 主窗体更换 构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  4. Oracle 正则表达式函数-REGEXP_REPLACE 使用例子

    原文在这: 戳 REGEXP_REPLACE 6个参数 第一个是输入的字符串 第二个是正则表达式 第三个是替换的字符 第四个是标识从第几个字符开始正则表达式匹配.(默认为1) 第五个是标识第几个匹配组 ...

  5. 模板 BFS

    [模板]BFS #include <stdio.h> #include <string.h> #include <queue> using namespace st ...

  6. js中获取当前时间

    var d = new Date();var date = d.getFullYear() + "年" +(d.getMonth() + 1) + "月" +  ...

  7. -XX:+TraceClassLoading 监控类的加载

    -XX:+TraceClassLoading –监控类的加载 •[Loaded java.lang.Object from shared objects file] •[Loaded java.io. ...

  8. 几个精彩的DMV

    --统计表的增删改次数,反映表的使用程度 SELECT DB_NAME([database_id]) AS [Database] ,iops.[object_id] AS [ObjectID] ,QU ...

  9. android之电话拨号器

    在android入门的案例中,除了HelloWorld这个经典案例,还有一个电话拨号器需要掌握,现在我就来个电话拨号器的示范,毕竟大牛也是从菜鸟进化而来的. 首先你应该知道自己要设置怎样的UI,然后创 ...

  10. 【译】微型ORM:PetaPoco【不完整的翻译】

    PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM. PetaPoco有以下特色: 微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中. 工作于严格的没有装饰的 ...