WPF资源路径详解

回眸只為那壹抹淺笑 提交于 2019-12-09 04:42:23

在WPF中,为Image控件设置图片的后台代码有以下三种写法:

1.

imgContent.Source = new BitmapImage(new Uri("Content.jpg", UriKind.Relative));

2.

imgContent.Source = new BitmapImage(new Uri("pack://application:,,,/Content.jpg"));

3.

imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/Content.jpg")); 

第一种和第二种都可以访问相对WPF资源路径的Resource和Content资源。

第三种方式不仅可以访问网站或应用程序运行目录下的Content资源文件,而且还可以访问以及独立与项目无关的文件夹中的文件或者说是

完全松散的文件。完全松散的文件指那些没有添加到项目中,只是拷贝在程序目录中的文件,应用程序根本不知道它的存在。

pack://application:,,,/Content.jpg表示当前项目的资源。它是pack://application:,,,/DllName;Component/Content.jpg的简写。将DllName替换成其他程序集,就可以访问其他程序集的资源。

pack://SiteOfOrigin:,,,/Content.jpg表示从部署位置访问文件。

pack URI格式是XML文件规范的一部分,具体格式如下 

pack://packageURI/partPath。

PackageURI实际上是在URI中放一个URI,它是把反斜杠都变成了逗号。packageURI的WPF资源路径可以志向一个XPS文档,例如file : /// c: /Document . xps会被编码为file:...c:,Document.xps。在WPF程序中有两种URI系统是特别处理的:

siteOfOrigin:/// 编码后siteOfOrigin:,,,

application:/// 编码后application:,,,

3个逗号其实是反斜杠编码过来的。




标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!