全部博文(372)
2012年(372)
分类: 虚拟化
2012-03-14 17:20:27
Metro Style App 之资源操作
运行环境请参考:Metro Style App之文件访问操作示例,下面介绍的是资源操作的一些体会。
对资源的操作方式主要有以下几种:
1、在Resources.resw文件中定义,然后通过x:Uid获取
如
使用方式是在x:Uid与之对应,如
|
这样TextBlock显示的文本就是hello world!, TextBlock的宽度是100,当然可以自己调整.
2、在文件中访问。如访问图片
|
3、使用ResourceLoader.GetString方法获得Resources.resw定义的资源。本例中resourceLoadBtn显示内容为Hello sting1.
var resourceLoad = new ResourceLoader();
resourceLoadBtn.Content = resourceLoad.GetString("string1"); |
注意:此时string1默认保存在Resources.resw文件中,如果resw的文件名不是Resources.resw,则要进行如下操作,如:
void anotherResourceBtn_Click(object sender, RoutedEventArgs e)
{
var resouceLoad = new ResourceLoader("AnotherResources");
anotherResourceBtn.Content = resouceLoad.GetString("anotherString");
} |
AnotherResources为AnotherResources.resw文件.
4、在其它项目中获得所需的资源。新建一个AppResourcesLibrary类库,然后建一个Resources.resw文件。
在Resources.resw文件中的定义如下:
下面是调用的方法
void AppResourceLibraryBtn_Click(object sender, RoutedEventArgs e)
{
var resourceloader = new ResourceLoader("AppResourcesLibrary/Resources");
AppResourceLibraryBtn.Content = resourceloader.GetString("string1") + " from " + AppResourcesLibrary.LocalizedNamesLibrary.Libraryname;
} |
AppResourcesLibrary.LocalizedNamesLibrary.Libraryname这个属性定义在 AppResourcesLibrary类库中的LocalizedNamesLibrary类,
该类的定义如下:
public static class LocalizedNamesLibrary
{
static ResourceLoader resourceLoader = null;
public static string LibraryName {
get
{
String name;
GetLibraryName("libraryname", out name);
return name;
}
}
private static void GetLibraryName(string resourceName, out string resourceValue)
{
if (resourceLoader == null)
{
resourceLoader = new ResourceLoader("AppResourceClassLibrary/Resources");
}
resourceValue = resourceLoader.GetString(resourceName);
}
} |
该类的定义跟在同一个项目中资源的获取定义一样,此处不在介绍。
总结:以上只是一些资源操作的基础知识,更详细的资料请参考Metro style app的sample。里面还有资源的管理等。
以上只是自己的一点学习心得,如果有什么意见和建议,欢迎大家提出!当然自己还在学习研究中共同学习,一起进步!下一篇将介绍一些Metro app style的动画操作。