WPF 图片无法显示……关于Application及SiteOfOrigin的路径问题
2017-09-22 17:06
633 查看
WPF 图片无法显示……关于Application及SiteOfOrigin的路径问题
tags: wpf C#初学WPF,因为一个图片显示折腾了一下午……归根到底还是没有很好理解WPF中的Resuorces的意义,记录一下……
问题现象:预览里面可以显示图片,但是程序运行起来了图片就显示不了了。用绝对路径可以在运行的时候显示,用
Uri u = new Uri("pack://SiteOfOrigin:,,,/images/k1.png", UriKind.RelativeOrAbsolute);
也可以在运行的时候显示,唯独使用
Uri u = new Uri("pack://Application:,,,/images/k1.png", UriKind.RelativeOrAbsolute);
或
<Image HorizontalAlignment="Right" Source="images/k1.png"/>
的时候都无法在运行时显示。
后来把图片作为资源添加后,可以可以正常显示了。在WPF里面的资源(Resources),跟以前接触的东西概念上是不一样的。到现在也还是没有完全理解资源到底是个什么,只能继续往后慢慢体会了。
在以往的开发经验中,资源只要放到相应的工程文件目录下,或者把资源路径指定正确就可以在工程中使用了,但是在WPF中好像不行。最开始,在工程文件夹下自己新建了一个文件夹,命名images,然后把图片都拷贝过去了,按照以往的开发经验,这个时候只要把相对路径指定对,图片就可以显示了,是一个非常简单的过程,但是在WPF中这样做只能在预览中显示,无法再程序运行过程中显示。
后来去网上看了很多人的帖子,关于资源、关于相对路径,算是对其有了朦胧的认识。在WPF中,Application授权好像只能访问程序集中有的东西(虽然对程序集的概念还有些模糊,跟工程有啥关系?),SiteOfOrigin授权以及绝对路径可以访问程序集外的内容,而把图片放入程序集的方式是通过添加资源的方式来实现,所以像以往那样只是把资源放到工程目录下是不行的!!!
补充一句,SiteOfOrigin授权的使用方式就跟我之前的经验是一致的,他的相对路径是相当当前程序执行的路径,只要这个文件存在,就能正常使用。
把图片或音视频资源添加到程序集的方法:在visual studio中,“解决方案资源管理器”->“解决方案”->“项目”->添加->现有项 然后会弹出一个选择框,让选择框显示所有类型的文件,然后就可以看到图片之类的文件了,然后添加就OK了。如果希望添加到某个文件夹下,则右键单击该文件夹,然后进行相同的操作。
还有一点,“解决方案资源管理器”中有两种视图,“解决方案”和“文件夹”之间可以通过“解决方案资源管理器”上面的按钮来回切换的。默认为“解决方案”视图,该视图下感觉才是程序集中的内容?(不知是不是这样理解)这个里面没有的东西,用Application就寻不到?“文件夹”视图就是这个工程文件夹中的所有内容,但这里面的东西如果没有类似添加资源这种操作,是不会显示在“解决方案”视图中的。
相关文章推荐
- 手把手教你:解决django关于图片无法显示的问题
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)
- 关于jar生成exe时出现背景图片无法显示的问题
- 关于低版本IE浏览器无法显示图片的问题
- HTML:使用绝对路径插入图片后在浏览器中无法显示的问题
- 解决嵌入WinForm的WPF控件无法显示图片问题
- 关于图片资源在android2.1/2.2/2.3下无法显示的问题以及解决方法
- WPF引用外部图片无法显示问题
- 关于phpcms上传图片成功,后台图片无法显示的问题
- 关于wpf 中图片(图标)的路径问题
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
- 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)
- 关于jsp中用css无法显示背景图片的问题
- 关于<img>标签无法显示名字中带有中文的图片的问题
- 解决ckeditor中文路径无法下载,无法显示图片问题
- struts2中action跳转导致图片相对路径无法显示问题
- 关于jsp页面上无法显示图片的问题
- 关于图片文件src路径有空格显示不出来的问题
- 关于h5中图片不显示的问题之绝对路径和相对路径
- 关于CSDN登录时,图片检验码无法显示的问题处理