程序代码:分析
从问题本质来说,大家忽略了Silverlight应用程序是嵌入到网页中的一个独立的应用程序,这点是寻求问题的关键,而一般程序对资源文件的使用无非是uri的定位问题,而在uri定位中最常犯的错误就是绝对定位和相对定位问题,这里是问题的症结所在。
解决
1、 编译成资源
首先我们看一下程序结构
首先我们必须将a1.jpg添加到项目中来。这样才能使用它的Build Action属性
1) 编译成Resource
该选项则直接将该图片编译成程序集中
程序代码:
注意:此处在“images/a1.jpg”前面不要加“/”,因为和程序集没有相对位置可言。
2) 编译成None,并将“Copy to Output Directory”设置为Copy always,此时不会编译到xap文件里面,而是编译到ClientBin目录下。
奇怪的狠,编译的时候没有将该资源复制到ClientBin目录下,如下
所以这时候我们必须人工将images目录拷贝到ClientBin目录下,这时候程序中的代码必须是“/images/a1.jpg”。
3) 编译成Content,“Copy to Output Directory”设置为所谓
此时images作为一个单独的目录存在于xap包中,可以被xap包中的所有程序集共享使用,对于这些程序集而言还是相对目录,所以仍然需要“/images/a1.jpg”格式来访问。
2、 引用网站资源
在实际应用中我们往往需要用到网站应用程序目录下图像信息,此时可以参考如下代码,一看就知。