在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个逗号其实是反斜杠编码过来的。
来源:CSDN
作者:飞鹰再现
链接:https://blog.csdn.net/feiying008/article/details/16845693