sliverlight资源文件的URI调用

这里主要介绍三种方式:1、将文件编译进dll;2、打包在XAP中;3、放在XAP包外,其所在目录下。

这里就将三张图片以不同的方式调用来作为例子:

QQ截图20130809163646

一、编译进DLL

默认情况下,复制到项目中的资源都是以这种形式与代码一起生成的。

QQ截图20130809163819

这时,资源文件属性中的生成操作需要设置为“Resource”。

如何在程序中使用?

BitmapImage bmp1 = new BitmapImage(new Uri("/SilverlightApplication1;component/images/被编译进DLL的.jpg", UriKind.Relative));
img_dll.Source = bmp1;

在使用URI的时候,格式为:/程序集名称;component/资源相对于项目根目录的路径

程序集名称在哪里?注意不是命名空间名。

QQ截图20130809164112

最终,可以通过反编译看到dll中的图片:

QQ截图20130809164813

二、打包进XAP

QQ截图20130809164316

这时需要将资源文件属性中生成操作设为“内容”。

如何在程序中使用?

BitmapImage bmp2 = new BitmapImage(new Uri("/images/被打包进XAP的.jpg", UriKind.Relative));
img_xap.Source = bmp2;

嗯,直接用相对于项目根目录的路径用就行了。

最终,可以看到XAP包中的它:

QQ截图20130809165120

三、直接放外面

这种办法主要针对于资源文件比较大的情况。因为本来XAP包就不小,还要放一堆用得着用不着的资源,到时候客户端下载体验会严重被拖慢。但是放在外面就是需要人员去保证程序所需的资源一定要部署到位,要是想用的时候用不到就恶心了。。。

QQ截图20130809165419

同样是设置生成操作,这次可以选成“无”,然后有一个地方需要注意,上面有一个“复制到输出目录”的选项,这个选项会将这个文件在项目生成的时候复制到项目生成的目录中,比如bin/Debug,但是一般Silverlight程序是挂在网站下的,xap在复制到网站的时候,资源文件可不会一起复制过去,人工自己来吧。。。

如何在程序中使用?跟上面打包的一样,可以直接写相对路径:

BitmapImage bmp3 = new BitmapImage(new Uri("/images/放在外面直接用的.png", UriKind.Relative));
img_out.Source = bmp3;

当然因为这个资源文件实际上是可以直接在网站上访问到的,也可以直接写绝对路径来加载资源,这里就不举例了。

Silverlight的测试页面:

QQ截图20130809165851

放在外面的文件:

QQ截图20130809170035

当然还有其他的资源使用办法,不过都不太常用,主要这三种就够了。

 

posted @   不是豆豆  阅读(664)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
友情链接:迷途


点击右上角即可分享
微信分享提示