资源与资源字典WindowsPhone7通过ResourceDictionary类提供了提供了资源字典的概念。资源字典是一个按键索引的对象字典。可以在XAML中后台代码中使用。资源字典可以存在于应用程序结构中的多个位置,包括直接资源、应用程序资源(App.xaml)或作为XAML中独立存在。使用资源字典要明确哪些对象应该放在资源字典里。其实,真正需要共享的就可以放在资源字典中。
设置资源设置时,可以设置一个整体的,也可以设置一个部分的。比如,我们可以设置一个样式资源
我们在前台代码中,写一个TextBlock来显示资源myName,使用Button来在后台更改TextBlock的Style属性。如:
privatevoidbtnShowInfo_Click(objectsender,RoutedEventArgse){this.myInfo.Text=Application.Current.Resources["myName"]asString;if(this.myInfo.Style==(Application.Current.Resources["redStyle"]asStyle)){this.myInfo.Style=Application.Current.Resources["greenStyle"]asStyle;}else{this.myInfo.Style=Application.Current.Resources["redStyle"]asStyle;}}这样,我们可以得到这样的效果:当页面加载时,TextBlock的值是“TextBlock”,Style属性是红色、20字体,当点击的时候,Textblock的值为“sky”,它的Style的属性会在红色、20字体与绿色、40字体间切换。
方式二:创建并使用局限于本页面的资源
我们可以将资源的定义不写在App.xaml中,而是在某一个页面中添加一个
综合方式一与方式二,效果运行为:
一般的,对于一个较大的项目,很有可能的场景是将很多需要的资源放在一个文件中统一管理,其他的应用程序或者dll在需要资源时调用就行了,这时就会使用资源字典文件了,如下面的方式三和方式四。
方式三:创建并使用独立的XAML中的资源字典文件
在我们定义资源的时候,我们可以新建一个xaml文件,在这个文件中定义我们需要的资源,如果我们直接新建一个WindowsPhoneApplication的页面,它会自动生成后台文件,也就是生成.cs文件,我们需要将这个文件删除。之后,在xaml中定义我们的资源,格式为:
在这里还有一些小插曲,我们稍后再说。
方式四:定义并使用外部DLL文件资源字典文件
这个方式就是其实就是创建并生成一个DLL文件,在需要使用的时候加载就行了。
创建一个项目,使用WindowsPhoneClassLibrary(即WindowsPhone类库)来创建,名为“ResourceDll”。删除项目中默认的Class1.cs文件,创建一个新的“myResource.xaml”文件。写入信息。如:
注意:如果我们有两个资源文件,分别为:Page1.xaml和Page2.xaml,如我们新建一个Page2.xaml,代码为
反之如果App.xaml中的设置为
另外,如果我们在做了上述的对资源文件的引用之后,如果我们还在