Windows Store App 全球化:引用分离资源文件中的资源
大部分应用程序仅需要单个默认资源文件,例如Strings/zh-CN/Resources.resw,但是在某些应用程序中,最好将资源分离到多个资源文件中,以便更好地组织资源内容,这样就需要考虑如何引用这些分离资源文件中的资源。下面通过一个示例讲解如何在后台代码中引用分离资源文件中的字符串资源。
新建一个Windows应用商店的空白应用程序项目,并命名为SeparatedResourcesFiles。在项目中添加如18.2.3小节示例中相同的语言文件夹、资源文件以及资源信息。完成上述操作后,在“zh-CN”和“en-US”文件夹下再各添加一个名为“Errors”的资源文件,在这两个Errors资源文件中分别添加图18-11和图18-12所示的字符串资源。
图18-11 zh-CN文件夹下Errors资源文件中添加的资源
图18-12 en-US文件夹下Errors资源文件中添加的资源
接下来在MainPage.xaml文件的Grid元素中添加一个“显示信息”按钮和两个TextBlock文本块,按钮用来获取资源的值并将其显示在其中一个TextBlock文本块中,另一个文本块则用来显示提示信息,代码如下所示:
<Button Content="显示信息" FontSize="20" HorizontalAlignment="Left" Margin="577,185,0,0" VerticalAlignment="Top" Height="44" Width="151" Click="ShowMessage_Click"/>
<TextBlock HorizontalAlignment="Left" Margin="753,194,0,0" TextWrapping="Wrap" Name="SeparatedResources" VerticalAlignment="Top" Height="35" FontSize="25" Width="318"/>
<TextBlock HorizontalAlignment="Left" Margin="577,135,0,0" TextWrapping="Wrap" Text="显示分离资源文件中的字符串资源" FontSize="25" VerticalAlignment="Top" Height="32" Width="384"/>
在MainPage.xaml.cs文件中,为“显示信息”按钮添加单击事件处理方法ShowMessage_Click,单击按钮将分离资源文件中的字符串资源的值显示在SeparatedResources文本块中,代码如下所示:
using Windows.ApplicationModel.Resources;
private void ShowMessage_Click(object sender, RoutedEventArgs e)
{
//新建一个ResourceLoader类的对象resourceLoader
var resourceLoader = new ResourceLoader("Errors");
//通过GetString方法获取InvalidOperation资源的值
SeparatedResources.Text = resourceLoader.GetString("InvalidOperation");
}
在上面的代码中,以分离的资源文件名“Errors”为参数新建一个ResourceLoader类的对象resourceLoader,该参数表示要引用的资源文件为Errors.resw,然后通过resourceLoader对象的GetString方法获取资源文件中资源名为InvalidOperation的值赋给SeparatedResources文本块的Text属性,使字符串资源显示出来。
当设置语言首选项为中文(简体)时,运行程序,单击“显示信息”按钮,使用简体中文显示“这是一个错误操作”,效果如图18-13所示。当设置语言首选项为英语时,运行程序,单击“显示信息”按钮,以英语显示“This is an error operate”,效果如图18-14所示。
图18-13 语言首选项为中文(简体)时调用Errors资源文件中的资源效果图
图18-14 语言首选项为英语时调用Errors资源文件中的资源效果图
由图18-13和18-14可以看出,通过上述方法成功的引用了分离资源文件中的字符串资源。这样就可以在设计应用时将不同类型的资源分离到多个资源文件中以便在不同场合引用不同的资源。
Windows Store App 全球化:引用分离资源文件中的资源的更多相关文章
- Windows Store App 全球化:在XAML元素中引用文件资源
上一小节讲解了如何在XAML元素中使用x:Uid属性引用资源文件中的字符串资源,通过改变语言首选项显示不同的运行结果.如果把字符串资源变成文件资源,就不能使用x:Uid属性来引用这些文件资源.本小节将 ...
- Windows Store App 全球化:在后台代码中引用字符串资源
上文提到了引用字符串资源具有两种方式,分别是在XAML元素中和在后台代码中引用资源文件中的字符串资源.在第一小节已经介绍了如何在XAML元素中引用字符串资源,本小节将讲解在后台代码中引用字符串资源的相 ...
- Windows Store App 全球化:在XAML元素中引用字符串资源
在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源.本小节先讲述如何在XAML元素中引用字符串资源的相关知识点. 在XAML元素中可以通过使用x:Uid属性来引用资源文件中的 ...
- Windows Store App 全球化:引用类库资源
前面几个小节介绍了如何引用自身项目的资源,而有时在应用程序开发过程中可能需要访问其他项目中的资源.例如,当几个人或十几个人一起设计一个解决方案时,每个人的工作都是不同的,编写的项目也是不同的,但是每个 ...
- Windows Store App 全球化 资源匹配规则
上面几个小节通过示例介绍了如何引用资源以及设置应用语言来显示不同语言的信息,这些示例都只是添加了简体中文和英语两种语言来显示资源,而在一些复杂的应用程序中,字符串资源可能会被定义成多种语言,文件资源也 ...
- Windows Store App 全球化 设置指定页面的语言
上一小节介绍了通过在应用程序中添加语言设置选项来改变整个应用显示信息的语言,而有时用户只想对应用中某一页面信息的语言进行调整,这时就不能使用上一小节所讲述的知识来对应用进行设置.下面将通过一个示例介绍 ...
- C#调用Resources.resx资源文件中的资源
使用到了.NET中的资源文件,也就是Resources.resx,于是就学会了如何调用资源文件中的资源.首先,资源文件可以从项目属性中的资源标签添加.比如,我添加一个图片,叫做aaa.png,添加入资 ...
- Windows Store App 全球化:应用中设置语言选项
当开发者将开发的应用上传到Windows应用商店以后,使用Windows 8系统的用户可能会看到并下载这些应用,而这些用户所在的区域或者所使用的语言可能都不相同,如果他们在使用应用程序时希望改变应用显 ...
- Windows Store App 全球化:运行时响应语言变更
在应用程序运行过程中,系统的语言.像素.对比度等系统设置可能会发生改变,应用程序应根据系统环境的改变及时做出适当的响应.为了解决这样的问题,可以在应用程序中为系统状态更改事件注册事件处理方法,当语言. ...
随机推荐
- 《30天自制操作系统》18_day_学习笔记
harib15a: 到这里为止,我们已经能实现窗口的切换了.我们发现所有的窗口都有光标闪烁,而我们只希望可以接受输入的窗口有光标闪烁.这里我们先来修改任务A中的光标闪烁,当按下TAB时,如果让A不现实 ...
- c++网络编程错误(WSAStartup)
在使用CodeBlocks编译C++程序时, 编译程序的时候出现如下错误: undefined reference to `inet_addr@4'undefined reference to `ge ...
- 11.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
//首先列出需要被操作的url $url_path = "http://www.sina.com.cn/abc/de/fg.php?id=1"; 方法一: ...
- 获取表单选中的值(利用php和js两种方式)
php代码中获取表单中单选按钮的值: (单选按钮只能让我们选择一个,这里有一个“checked”属性,这是用来默认选取的,我们每次刷新我们的页面时就默认为这个值.) 例: <form name= ...
- .Net程序员安卓学习之路4:使用xutils Get Post数据
前面使用了一些网络上找来的类进行网络访问,后来发现了安卓开发中有一个国人写的类库xutils比较全面,也比较经典,故后续使用xutils类库进行记录. 本例服务端使用WCF来实现,写好的WCF服务端在 ...
- each(callback) 对于每个匹配的元素所要执行的函数
以每一个匹配的元素作为上下文来执行一个函数. 意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素).而且,在每次执行函数时,都会给函数传递一 ...
- asp.net服务控件的生命周期
1. 初始化 - Init事件 (OnInit 方法) 2. 加载视图状态 - LoadViewState方法 3. 处理回发数据 - LoadPostData方法 对实现 ...
- 关于ajax伪实时动态下拉显示最新数据
var list= data.data.list; //list是ajax返回的数组Array].Id).length>) { return false; } //$("#learnL ...
- 一、Docker之旅
刚刚接触到docker的同事可能会一头雾水,docker到底是一个什么东西,先看看官方的定义. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔 ...
- java语言的认识
class Hello{ public static void main(String [] args) { System.out.println("Hello Word 你好") ...