在应用程序中可以通过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. cat *.txt | grep '>' | wc -l

    find the line where the '>' located, and make a statistic.

  2. jquery获取input表单值的代码

    [导读] jquery取radio单选按钮的值$("input[name=items]:checked") val();jquery radio取值,checkbox取值,sele ...

  3. 数据库中 关于不能用in 不能用exist 等关键字 查询不出现字段的问题

    这是之前在网上见到的一道题,后来心里略微想了想 觉得应该可能,所以就一闪而过了,之前去面试晨光的时候面试者问了我这道问题,当时也只是把自己的想法说了一下,可能因为当时面试的感觉不太好,面试官也没有追究 ...

  4. [Ubuntu] Profile error when launching google-chrome

    Whenever I launch google-chrome, a window is displayed which contains this message: Your profile cou ...

  5. BootStrap tabs标签 使用fade效果首次加载页面不能显示内容

    <div class="tab-pane active fade" id="home"> <div class="alert ale ...

  6. C# 参数化SQL语句中的like和in

    在写项目的时候遇到一个问题,sql 语句进行 like in 参数化,按照正常的方式是无法实现的我们一般的思维是: Like 参数:string strSql = "select * fro ...

  7. nodejs学习笔记

    这里有一段废话,我写了又删,删了又写,反复了十来次,最后还是把它删除了.不用想了,那是一段牢骚话兼有煽情意思. 好了,还是把我学习nodejs的笔记记录下来吧,一来复习巩固,加深印象,二来自己实践中出 ...

  8. javaWeb 使用 filter 处理 html 标签问题

    1.web.xml代码 <filter> <filter-name>HtmlFilter</filter-name> <filter-class>de. ...

  9. [课程设计]Scrum 1.5 多鱼点餐系统开发进度(点餐页面框架修复及继续布置)

    Scrum 1.5 多鱼点餐系统开发进度(点餐页面框架修复及继续布置)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...

  10. HttpWebRequest调用WebAPI

    private void button1_Click(object sender, EventArgs e) { string ss= HttpPost("http://localhost: ...