WPF备忘录(7)WPF图片资源路径介绍
来源:互联网 发布:https的端口号是多少 编辑:程序博客网 时间:2024/05/17 06:44
在项目中增加两张图片Content.jpg和Resource.jpg,分别将其生成操作属性设置为Content和Resource。
在界面中增加两个Image控件ImgContent和ImgResource,在XAML中分别设置Source路径为Content.jpg和Resource.jpg。运行后ImgResource能正常显示图片,但是ImgContent控件无显示。将Content.jpg图片拷贝至应用程序的Debug目录中,ImgContent控件可显示图片。
生成操作设置为Resource,生成的时候资源将添加到程序集中。可以尝试将原有的图片删除,图片正常显示。将原有图片用新图片替换,仍显示原有图片。只有选择重新生成操作才能更新图片。
生成操作设置为Content,并不会添加至程序集,而且只有把资源放置在程序运行目录才能访问到资源。程序运行目录调试时是Debug目录,安装后就是程序的安装目录。与直接把资源放置在程序运行目录不同的是,添加Content资源文件,会向程序集(AssemblyAssociatedContentFile)中添加一个定制特性,该程序集记录文件是否存在及其相对位置。我发现VS2008有一个小Bug,在解决方案管理器中将Content.jpg改名为Con.jpg,Bug目录下的图片也做相应的改变。此时编译器报错:文件Con.jpg不是项目的一部分或其“Build Action”属性未设置为“Resource”。但是按F5运行,生成成功并正常显示。可见在改变Content资源的时候,程序集中的定制特性没有做相应的变化。
删除XAML中的Source属性,在后台为两个图片控件设置Source属性。有如下三种方式。
imgContent.Source = new BitmapImage(new Uri("Content.jpg", UriKind.Relative));
imgResource.Source = new BitmapImage(new Uri("Resource.jpg", UriKind.Relative));
imgContent.Source = new BitmapImage(new Uri("pack://application:,,,/Content.jpg"));
imgResource.Source = new BitmapImage(new Uri("pack://application:,,,/Resource.jpg"));
imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/Content.jpg"));
第一种和第二种都可以访问相对路径的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可以志向一个XPS文档,例如file : /// c: /Document . xps会被编码为file:...c:,Document.xps。在WPF程序中有两种URI系统是特别处理的:
siteOfOrigin:/// 编码后siteOfOrigin:,,,
application:/// 编码后application:,,,
3个逗号其实是反斜杠编码过来的。
- WPF备忘录(7)WPF图片资源路径介绍
- WPF调用图片路径,或资源图片(WPF编译器、运行期 引用资源)
- WPF备忘录二(资源样式)
- WPF备忘录五(路径动画)
- WPF资源路径
- WPF资源路径
- WPF资源路径
- WPF资源路径
- WPF资源路径详解
- WPF 图片资源设定
- WPF 图片路径
- WPF设置图片路径
- WPF资源路径详细详解
- wpf 图片资源引用问题
- wpf 项目添加图片资源
- WPF 图片等路径问题
- WPF 中资源路径的问题
- WPF资源路径详细概念详解
- Android手机通过wifi进行数据传输(三)
- DM6467 CCS3.3 BIOS 5.32.1使用时问题解析
- Connection is read-only. Queries leading to data
- python爬虫抓网页的总结
- Nginx配置文件详细说明(vlc访问m3u8文件-2)
- WPF备忘录(7)WPF图片资源路径介绍
- 轻松实现SQL Server与Access、Excel数据表间的导入导出 【转载】
- IOS高级教程3:UITapGestureRecognizer手势识别的简单使用到精通
- [LeetCode] Binary Tree Level Order Traversal
- HTTP Keep-Alive详解
- Eclipse 安装最新SVN插件
- git笔记之多账户的使用
- Android手机通过wifi进行数据传输(四)
- Objective-c中的Block(块)详解