【WP7】关于Build Action

WP7关于资源属性的 Build Action 属性有多种

  None:此文件将被忽略不参与编译和输出

  Compile:文件将被编译为Microsoft 中间语言(IL),如文件扩展名为cs的文件

  Content:文件将会打包进xap文件当中,以独立文件使用

  Page:在WP当中,xaml页面文件都属于Page,除App.xaml文件外

  Resource:文件将被编译到xap文件包的.dll文件内

一般我们都使用 Content 和 Resources 两种属性

  对于Content 的引用,由于资源文件是以单独的文件打包到xap文件中,所以直接引用路径即可,

    Uri uri = new Uri("/Image/img.png", UriKind.Relative);

  而 Resources 是把资源文件编译到dll中,引用的时候需要加上程序集

    Uri uri = new Uri("/PhoneApp1;component/Image/img.png", UriKind.Relative);

  

  把应用程序资源转化为流(设置成Content资源的流文件)

    Uri uri1 = new Uri("Image/img.png", UriKind.Relative);    //注意,路径前面不能有斜杠'/'

    Uri uri = new Uri("/PhoneApp1;component/Image/img.png", UriKind.Relative);

    Stream = Application.GetResourceStream(uri1);

    Stream = Application.GetResourceStream(uri2);

    据说很多类型的Content资源无法通过 Application.GetResourceStream 方法来访问,只有部分类型支持

      Content类型的文件也可以通过XNA框架类来引用

    Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream("Image/img.png");

 

最后是什么时候使用Content 什么时候使用 Resources 

  一般情况下都把资源文件的生成操作设置成 Content ,例如:Image,media,XML file

    使用”Content”要比“Resource”性能上好一些。因为Windows Phone 7是为文件和网络流做了优化处理,但是Memory流却没有。设置成Content类型,这些文件将会作为独立的文件存在xap包中,如果设置为resource,他们会被编译到dll中。如果把这些文件设置为Resource方式的话,它们实际上在回放的时候还需要读取出来放到文件中,反而降低了性能。所以,如果你的程序中有大量的媒体文件的话,要想性能好,还是把它们的BuildAction设置为“Content”比较好一些。

  如果不用到透明的图片,用 Jpg 代替 Png 格式,因为Jpg格式的图片速度更快

 参考阅读:http://msdn.microsoft.com/en-us/library/ff967560(v=VS.92).aspx#BKMK_Images

 

 

 

 

 

posted @ 2012-11-12 21:15  bomo  阅读(676)  评论(0编辑  收藏  举报