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