Windows Store App 全球化:在后台代码中引用字符串资源
上文提到了引用字符串资源具有两种方式,分别是在XAML元素中和在后台代码中引用资源文件中的字符串资源。在第一小节已经介绍了如何在XAML元素中引用字符串资源,本小节将讲解在后台代码中引用字符串资源的相关知识点。
下面通过一个示例直接讲述如何在后台代码中引用资源文件中的字符串资源。新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInCode。在项目中新建一个名为“Strings”的文件夹,在“Strings”文件夹下新建名为“zh-CN”和“en-US”的子文件夹并在这两个子文件夹中添加资源文件,在zh-CN文件夹下的资源文件中输入图18-1所示的资源,在en-US文件夹下的资源文件中输入图18-2所示的资源。
在MainPage.xaml文件的Grid元素中添加一个“显示信息”按钮和两个TextBlock文本块,按钮用来获取资源的值并将其显示在其中一个TextBlock文本块中,另一个文本块则用来显示提示信息,代码如下所示:
<Button Content="显示信息" FontSize="25" HorizontalAlignment="Left" Margin="557,170,0,0" VerticalAlignment="Top" Height="59" Width="150" Click="ShowMessage_Click"/>
<TextBlock HorizontalAlignment="Left" Margin="730,185,0,0" TextWrapping="Wrap" Name="ShowString" VerticalAlignment="Top" Height="44" FontSize="25" Width="152"/>
<TextBlock HorizontalAlignment="Left" Margin="555,130,0,0" TextWrapping="Wrap" Text="单击“显示信息”按钮显示字符串资源" FontSize="20" VerticalAlignment="Top" Height="35" Width="327"/>
在MainPage.xaml.cs文件中,为“显示信息”按钮添加单击事件处理方法ShowMessage_Click,单击按钮,将引用的字符串资源值显示出来,代码如下所示:
using Windows.ApplicationModel.Resources;
private void ShowMessage_Click(object sender, RoutedEventArgs e)
{
//新建一个ResourceLoader类的对象resourceLoader
var resourceLoader = new ResourceLoader();
//通过GetString方法获取StringResource资源的值
ShowString.Text = resourceLoader.GetString("StringResource");
}
在ShowMessage_Click方法中,新建一个ResourceLoader类的对象resourceLoader,ResourceLoader类提供了对各资源文件、引用的库或其他包中的字符串资源的基本访问权限,使用ResourceLoader类需要引用命名空间Windows.ApplicationModel.Resources。然后通过resourceLoader对象的GetString方法获取资源文件中资源名为StringResource的值赋给ShowString文本块的Text属性,使字符串资源值显示出来。
当设置语言首选项为中文(简体)时,运行程序,单击“显示信息”按钮,使用简体中文显示“你好世界”,效果如图18-9所示。当设置语言首选项为英语时,运行程序,单击“显示信息”按钮,以英语显示“Hello World”,效果如图18-10所示。
图18-9 语言首选项为中文(简体)时效果
图18-10 语言首选项为英语时效果
至此引用资源文件中字符串资源的两种方式就全部介绍完了,开发者可以根据应用程序自行选择使用哪种方式引用字符串资源,下面将讲述如何引用分离资源文件中的资源。
值得注意的是,在本章下面的示例当中将多次用到本示例中所使用的资源文件及资源内容,“Hello World”的故事对于程序员来说并不陌生,甚至略显陈旧,但是在本章中通过特意安排使用不同的语言去说“Hello World”,表达了作者希望读者的应用可以推广到全世界的愿望。
Windows Store App 全球化:在后台代码中引用字符串资源的更多相关文章
- Windows Store App 全球化:在XAML元素中引用文件资源
上一小节讲解了如何在XAML元素中使用x:Uid属性引用资源文件中的字符串资源,通过改变语言首选项显示不同的运行结果.如果把字符串资源变成文件资源,就不能使用x:Uid属性来引用这些文件资源.本小节将 ...
- Windows Store App 全球化:引用分离资源文件中的资源
大部分应用程序仅需要单个默认资源文件,例如Strings/zh-CN/Resources.resw,但是在某些应用程序中,最好将资源分离到多个资源文件中,以便更好地组织资源内容,这样就需要考虑如何引用 ...
- Windows Store App 全球化:引用类库资源
前面几个小节介绍了如何引用自身项目的资源,而有时在应用程序开发过程中可能需要访问其他项目中的资源.例如,当几个人或十几个人一起设计一个解决方案时,每个人的工作都是不同的,编写的项目也是不同的,但是每个 ...
- Windows Store App 全球化:在XAML元素中引用字符串资源
在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源.本小节先讲述如何在XAML元素中引用字符串资源的相关知识点. 在XAML元素中可以通过使用x:Uid属性来引用资源文件中的 ...
- Windows Store App 全球化 资源匹配规则
上面几个小节通过示例介绍了如何引用资源以及设置应用语言来显示不同语言的信息,这些示例都只是添加了简体中文和英语两种语言来显示资源,而在一些复杂的应用程序中,字符串资源可能会被定义成多种语言,文件资源也 ...
- Windows Store App 全球化:应用中设置语言选项
当开发者将开发的应用上传到Windows应用商店以后,使用Windows 8系统的用户可能会看到并下载这些应用,而这些用户所在的区域或者所使用的语言可能都不相同,如果他们在使用应用程序时希望改变应用显 ...
- Windows Store App 全球化:运行时响应语言变更
在应用程序运行过程中,系统的语言.像素.对比度等系统设置可能会发生改变,应用程序应根据系统环境的改变及时做出适当的响应.为了解决这样的问题,可以在应用程序中为系统状态更改事件注册事件处理方法,当语言. ...
- Windows Store App 全球化 设置指定页面的语言
上一小节介绍了通过在应用程序中添加语言设置选项来改变整个应用显示信息的语言,而有时用户只想对应用中某一页面信息的语言进行调整,这时就不能使用上一小节所讲述的知识来对应用进行设置.下面将通过一个示例介绍 ...
- Windows Store App 过渡动画
Windows Store App 过渡动画 在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...
随机推荐
- 我的AngularJS 学习之旅(二)
记得某位大神说过,"时间就像海绵里的水,挤挤总是有的.".大多时候,与其说我是很忙而没时间去做自己想做的事, 倒不如说是懒得去做罢了. 废话不多说,接前一篇继续吧 3.3 指令(D ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...
- git设置hooks 钩子
github是可以设置hooks的,看:在设置webhooks & services,可在Just the push event.是设定向你的服务器发请求,然后再做相应的处理. https:/ ...
- VMware中给Linux虚拟机添加硬盘
给vmware的Linux虚拟机添加硬盘 1.关闭虚拟机电源,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a n ...
- 【selenium 3】 Mac 下测试环境搭建 Firefox 47+ gecko driver Mac
错误代码如下:File "/usr/local/lib/python2.7/dist-packages/selenium-3.0.0b2-py2.7.egg/selenium/webdriv ...
- ZOJ 3781 Paint the Grid Reloaded(BFS)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781 Leo has a grid with N rows an ...
- php 安装 sphinx
我的环境是 ubuntun ,所以 第一步 sudo apt-get install pear 第二,根据 php.net 里说的,去下载 sphinx. 第三,pecl install sphinx ...
- SVN和Git的异同
其实Git和SVN还是挺像的,都有提交,合并等操作,看来这是源码管理工具的基本操作. 1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后 ...
- android音乐播放器(Service+ContentProvider+Broadcast+Activity四大组件完成)
1.获取音乐 1-1:获取手机中的音乐(用ContentProvider内容提供者来完成): package com.firefly.util; import java.util.ArrayList; ...
- .getClass();
Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息.可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得.获得此对象后 ...