关于Windows Phone的资源文件Build Action属性

       最近一朋友问了一个问题,他想引用一个本地图片到页面上的Image控件,可是发现用Application的GetResourceStream得到的结果是个null值,当时第一个想到的就是他图片的Build Action属性值设置的不对,于是自己写了个Demo测试,

Stream sr = Application.GetResourceStream(new Uri("face.png", UriKind.Relative)).Stream;
BitmapImage bi = new BitmapImage();
bi.SetSource(sr);
image.Source = bi;

发现测试成功,图片正常显示,(Build Action:Content),但是在朋友那不行,设置相同,后来查看代码发现,他的项目是Class Library,把图片的Build Action:Resource就一切OK了。所以也引起了对记忆中不清楚的Build Action的值兴趣,特写此文,让自己清楚下。

Build Action 属性有多种

None:此文件将被忽略不参与编译和输出(这个可以简单理解为不要这个文件不)

Compile:文件将被编译为Microsoft 中间语言(IL),如文件扩展名为cs的文件(简单理解,代码文件都是这个类型的)

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

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

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


Content和Resource的区别,Content是把资源文件打包到xap中,Resource是把资源打包到Dll中;

Content的引用:Application.GetResourceStream(new Uri("face.png", UriKind.Relative)).Stream;

Resources的引用:Application.GetResourceStream(new Uri("/DLL;component/face.png", UriKind.Relative)).Stream;

原文地址:https://www.cnblogs.com/suncoolcat/p/3327508.html