Silverlight中文件的生成操作与其对应的获取方法
来源:互联网 发布:网络版点歌软件 编辑:程序博客网 时间:2024/06/14 12:34
最近在学习关于WriteableBitmapEx库的东西,在用FromResource函数是遇到问题,后来发现是因为Build Action设置的问题引起的。之后就查找了一些知识。
文件生成操作:
Silverlight里的资源文件(图片、视频、字体、XML、XAML等) 生成操作属性选择不同选项时,文件的生成方式和存储位置会有相应变化,下面说一下几个常用的选项:
1、 Page:一般xaml文件都用这个。
2、 Compile:一般cs文件都用这个
3、 ApplicationDefinition:一般程序入口文件都用这个(默认为App.xaml)
4、 Resource:
一般程序里的资源文件设置成Resource状态时,编译之后文件会被嵌进程序集(dll)中, dll们放在xap包里。(可以用Reflector.exe看一下dll的内容,一看便知)。
5、 Content:
一般程序里的资源文件设置成Content状态时,编译之后文件不会被嵌进程序集(dll)中,而是放在dll外,与dll们一起放在xap包里。(可以把xap包解压缩,一看便知)。
小结:
最后两个选项是最常用的,个人觉得掌握了这两种一般应用就够了,其他的选项不是很常用,如有特殊需要可以去MSDN家找找看。
文件获取方法:
下面以图片为例说一下各种文件的获取方法:在工程里添加一个文件夹Images,然后添加一张图片background.jpg。
1、 background.jpg的生成操作属性选择 Resource时,编译后将被嵌在程序集(dll)里,获取方式如下:
<Image Source="./Images/background.jpg"></Image>
<Image Source="../Images/background.jpg"></Image>
<Image Source="Images/background.jpg"></Image>
<Image Source="/SilverlightApplication1;component/Images/background.jpg"></Image>
2、 background.jpg的生成操作属性选择 Content时,将被生成在程序集(dll)外,以文件形式存在于xap包里,获取方式如下:
<Image Source="/Images/background.jpg"></Image>
3、 background.jpg以文件形式存在于ClientBin文件夹里,获取方式如下:
<Image Source="/Images/background.jpg"></Image>
归纳一下以上几种获取文件的方法:
1、 相对路径:
1) 前加“./”:<Image Source="./Images/background.jpg"></Image>
2) 前加“../”:<Image Source="../Images/background.jpg"></Image>
3) 不加任何前导符:<Image Source="Images/background.jpg"></Image>
4) 前加“/”:<Image Source="/Images/background.jpg"></Image>
前三种写法相对路径根目录为程序集(dll),默认在程序集里找图片。第二种路径前加“../”的情况,应用在子文件引用父文件夹里图片时。第四种写法也是相对路径,但是根目录为xap包,默认在dll所在xap包里找图片。
以上四种情况如果在dll或者xap包里找不到图片,有个回退机制控制程序去ClientBin里找图片,如果还没找到就报错。
2、 指定程序集
<Image Source="/SilverlightApplication1;component/Images/background.jpg"></Image>
这种情况指定在某程序集里找图片,如果找不到就报错,不会去其他地方找。
3、 绝对路径
<Image Source="http://img1.cache.netease.com/cnews/2009/10/7/200910070216124029d.jpg"></Image>
这种情况就无所谓了,图片有就是有,没有就报错。
4、 代码获取
在cs代码里用程序实现获取图片也很简单,路径的写法与上述三种一样,例如:
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.UriSource = new Uri("Images/background.jpg", UriKind.RelativeOrAbsolute);
this.img.Source = bitmapImage;
内容(Content) - 不编译该文件,但将其包含在“内容”(Content) 输出组中。
编译(Compile) - 将该文件编译到生成输出中。此设置用于代码文件。
嵌入资源(Embedded Resource) - 将该文件作为 DLL 或可执行文件嵌入主项目生成输出中。
内容的读写和运行目录下的其他文件没有区分。
编译和嵌入资源读写,需要用到,例如:
GetType().Assembly.GetManifestResourceStream(assembleName + ".AppDesc.xml");
原文链接:http://www.cnblogs.com/yqy3310/archive/2010/01/26/1579458.html
http://www.cnblogs.com/yinhaiming/articles/1717374.html
- Silverlight中文件的生成操作与其对应的获取方法
- Silverlight中文件的上传与下载
- Android获取URL中文件的扩展名的方法
- mfc控件与其对应的对象的关联方法
- C#递归获取所有目录下的文件信息并生成对应的XML件
- VB.Net获取资源文件中文件的方法
- C中文件的操作。。。。
- Java中文件的操作
- Java中文件的操作
- JAVA中文件的操作
- VC中文件的操作
- mfc中文件的操作
- QT中文件的操作
- java中文件的操作
- C# 中文件的操作
- Loadrunner中文件的操作
- c++中文件的操作
- java中文件的操作
- svn被锁住的解决方式
- java适配器模式
- 主板 术语信息
- Linux--4:Linux文件系统
- scilab文件执行
- Silverlight中文件的生成操作与其对应的获取方法
- HTML 中 id name class 区别
- 关于高斯模糊的详细介绍及python代码实现
- 深入理解OpenGL拾取模式(OpenGL Picking)
- VC++预定义符
- Unhandled event loop exception PermGen space
- 玩玩sed -- pattern space和hold space
- Android系统移植与调试之------->如何使用PhotoShop转换24位的bmp图片为16位bmp图片
- 【diannaoxitong】屏蔽网络共享功能