图片等资源的引用路径问题
在SL中,我们经常会遇到资源引用的问题,尤其是图片资源。这里就有两个地方需要注意的:
- 图片放哪里?
-
Xaml中怎么引用图片?
下面我会通过一个简单的Demo来讲解一下这两个问题。
首先,新建两个工程,如下图:
这里,我们在SL工程中的Images文件夹放了4张图片(其中Image.jpg可以忽略),在Web工程的ClientBin目录下也建了个叫Images的文件夹,下面只有一张我们要用来外部引用的图片。
右键SL工程中任意一张图片=>属性(Property),我们会看到下面这样的配置菜单。
其中两个配置项是我们所关心的,一个是Build Action,另外一个是Copy To Output Directory。
其中Build Action会决定VS是如果处理你这个文件的,点开下拉菜单会看到可以选择的编译动作有好几个,这里我们只讲下面几个(因为我只研究过这几个^_^,如果其他选项你知道的话,请告诉我)。
- Resource —— 资源会被打包在程序集内部
- Content——资源会被打包在Xap包里面
-
None——资源既不会被集成到程序集内,也不会打包到xap包中。不过我们可以通过设置CopyToOutputDirectory选项让其自动拷贝到xap包所在目录。
再来说引用的问题。
- 使用前置 / 引用资源时,SL会从当前Xap包中查找资源,找不到的话会到Xap包所在的目录查找
- 不使用前置 / 引用资源时,SL会从当前程序集内查找资源,如果找不着则会到Xap包所在目录查找其他选项你知道的话
-
你也可以使用/{程序集名};component/{图片资源路径}的方式来访问,这样就查找的路径就限定在程序集内部了,也就是那些标记为Resource的资源。