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

上一小节讲解了如何在XAML元素中使用x:Uid属性引用资源文件中的字符串资源,通过改变语言首选项显示不同的运行结果。如果把字符串资源变成文件资源,就不能使用x:Uid属性来引用这些文件资源。本小节将以图片作为文件资源,通过更改语言首选项,在XAML元素中引用不同的图片资源进而更改显示结果。下面讲述如何添加、引用图片资源。

首先新建一个Windows应用商店的空白应用程序项目,并命名为FileResourcesInXaml。在项目的Assets文件夹下新建两个文件夹,一个名为“zh-CN”,另一个名为“en-US”。在“zh-CN”文件夹中添加名为picture1.jpg的图片,如图18-5所示。在“en-US”中添加名为picture2.jpg的图片,如图18-6所示。添加完成后,将en-US文件夹中的picture2.jpg图片重命名为picture1.jpg。这样,两个文件夹分别存放了名字同为picture1.jpg的图片,但图片内容不同。

       

                         图18-5 图片picture1     图18-6 图片picture2

然后在MainPage.xaml文件的Grid元素中添加一个Image控件和一个TextBlock控件,通过Image控件的Source属性引用名为picture1的图片,TextBlock控件用于显示“输出结果为:”的文本信息,代码如下所示:

<TextBlock HorizontalAlignment="Left"  FontSize="25" Height="32" Margin="482,100,0,0" TextWrapping="Wrap" Text="显示结果为:" VerticalAlignment="Top" Width="154"/>

<Image HorizontalAlignment="Left" Stretch="None" Source="Assets/picture1.jpg" Height="96" Margin="511,137,0,0" VerticalAlignment="Top" Width="81"/>

在上面的代码中Image控件的Source属性指定的相对路径省略了语言文件夹,系统会自动根据当前语言首选项选择正确目录下的图片文件。

当设置语言首选项为中文(简体)时,运行程序将显示文件名为“文件.doc”的图片,效果如图18-7所示。当设置语言首选项为英语时,运行程序将显示文件名为“file.doc”的图片。效果如图18-8所示。

              

     图18-7 语言首选项为中文(简体)时应用运行效果    图18-8 语言首选项为英语时应用运行效果

由图18-7和图18-8可以看到,当更改语言首选项后,显示的图片资源也不同,这样就实现了根据语言首选项引用不同文件资源的功能,下一小节将要讲解如何在后台代码中引用字符串资源。

时间: 2024-08-07 04:30:57

Windows Store App 全球化:在XAML元素中引用文件资源的相关文章

Windows Store App 全球化:在XAML元素中引用字符串资源

在应用程序中可以通过XAML元素和后台代码两种方式引用资源文件中的字符串资源.本小节先讲述如何在XAML元素中引用字符串资源的相关知识点. 在XAML元素中可以通过使用x:Uid属性来引用资源文件中的字符串资源,这些字符串资源存储在资源文件中,下面介绍如何在项目中新建资源文件.添加字符串资源以及在XAML元素中通过x:Uid属性引用资源文件中的字符串资源. 在Visual Studio 2012中新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInXaml

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

上文提到了引用字符串资源具有两种方式,分别是在XAML元素中和在后台代码中引用资源文件中的字符串资源.在第一小节已经介绍了如何在XAML元素中引用字符串资源,本小节将讲解在后台代码中引用字符串资源的相关知识点. 下面通过一个示例直接讲述如何在后台代码中引用资源文件中的字符串资源.新建一个Windows应用商店的空白应用程序项目,并命名为StringResourcesInCode.在项目中新建一个名为"Strings"的文件夹,在"Strings"文件夹下新建名为&q

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

前面几个小节介绍了如何引用自身项目的资源,而有时在应用程序开发过程中可能需要访问其他项目中的资源.例如,当几个人或十几个人一起设计一个解决方案时,每个人的工作都是不同的,编写的项目也是不同的,但是每个人都可能需要访问其他项目的某些资源,这就引入了类库资源的概念.对于每一个项目都能够引用的资源,我们称它为类库资源.下面通过一个示例具体讲解如何引用类库中的资源. 新建一个Windows应用商店的空白应用程序项目,并命名为GetClassLibraryResources.在解决方案资源管理器中,右键单

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

当开发者将开发的应用上传到Windows应用商店以后,使用Windows 8系统的用户可能会看到并下载这些应用,而这些用户所在的区域或者所使用的语言可能都不相同,如果他们在使用应用程序时希望改变应用显示信息的语言为自己所熟悉的语言,这就需要应用能够提供一个语言设置选项,并在选项中包括用户所在地区的语言,这样就能够在应用中更加准确的为用户提供所需要的界面语言而不受区域的影响.下面将通过示例讲解如何在应用中添加"语言设置"选项,通过设置应用的语言来显示不同的信息. 新建一个Windows应

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

大部分应用程序仅需要单个默认资源文件,例如Strings/zh-CN/Resources.resw,但是在某些应用程序中,最好将资源分离到多个资源文件中,以便更好地组织资源内容,这样就需要考虑如何引用这些分离资源文件中的资源.下面通过一个示例讲解如何在后台代码中引用分离资源文件中的字符串资源. 新建一个Windows应用商店的空白应用程序项目,并命名为SeparatedResourcesFiles.在项目中添加如18.2.3小节示例中相同的语言文件夹.资源文件以及资源信息.完成上述操作后,在"z

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

上面几个小节通过示例介绍了如何引用资源以及设置应用语言来显示不同语言的信息,这些示例都只是添加了简体中文和英语两种语言来显示资源,而在一些复杂的应用程序中,字符串资源可能会被定义成多种语言,文件资源也可能为了根据不同的环境显示不同的效果而在程序中存储多种版本,这时应用程序就需要根据使用情况选取最匹配的资源作为应用的首选资源,本小节将通过示例模拟应用选取匹配资源的过程. 1.匹配规则 在应用程序运行时,应用对资源的选取受许多方面的因素的影响,例如系统的语言.屏幕的大小.分辨率和对比度等.应用程序的

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

在应用程序运行过程中,系统的语言.像素.对比度等系统设置可能会发生改变,应用程序应根据系统环境的改变及时做出适当的响应.为了解决这样的问题,可以在应用程序中为系统状态更改事件注册事件处理方法,当语言.像素等系统设置信息发生改变时将触发这个事件,并在事件处理方法中根据环境变化做出相应的调整.下面通过一个具体的示例来演示如何在应用程序中注册状态更改事件,并在所添加的事件处理方法中对语言首选项的更改做出响应. 新建一个Windows应用商店的空白应用程序项目,并命名为RuntimeChanges.在项

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

上一小节介绍了通过在应用程序中添加语言设置选项来改变整个应用显示信息的语言,而有时用户只想对应用中某一页面信息的语言进行调整,这时就不能使用上一小节所讲述的知识来对应用进行设置.下面将通过一个示例介绍如何在指定页面上添加语言可选项,选择语言选项后单击"显示信息"按钮来显示相应语言的信息. 新建一个Windows应用商店的空白应用程序项目,并命名为OverrideLanguage.在项目中添加如18.2.3小节示例中相同的语言文件夹.资源文件以及资源. 双击打开MainPage.xaml

Windows Store App 中挂起时,程序奔溃的问题

昨天在开发windows phone 8.1程序时,发现程序在挂起的时候,会自动退出.通过调试发现错误信息是 System.Runtime.InteropServices.COMException (0x80004005): Unspecified error GetNavigationState doesn't support serialization of a parameter type which was passed to Frame.Navigate. at Windows.UI.