wpf 图片绝对路径引用_C#的WPF中的Image控件中载入图片的方法

C#的WPF中的Image控件中载入图片的方法

——独立观察员

2014.06.23

最近在做学校短学期课程"软件工程-软件项目管理与开发实践"的作业,选择用WPF(C#)做客户端。这是我第一次用WPF,以前学过C#,用的是Winform。

简而言之就是界面上需要载入图片(动态),折腾了挺久的,终于成功,特此记录在此。

Uri uri = new Uri("/Images/" +

curImage,UriKind.Relative);

BitmapImage bitmap = new BitmapImage(uri);

myImage.Source =

bitmap;

但始终无法显示出图片。

花开两朵,各表一枝。在搜索过程中,我试了一下在XAML里调用图片,这个成功了,不过可能不够规范:

x:Name="image" Source="/OrderFood_WPF;component/bin/Debug/picture/1.jpg"

/>

其中OrderFood_WPF是项目名,整个/OrderFood_WPF;component就是项目所在路径,而我的图片在其下的/bin/Debug/picture路径内,由上图可见图片载入成功。

但是在.cs文件(代码文件)中动态地载入图片还是不行。浏览 WPF中Image控件的Source属性

文章时发现他是这样写的:

imageEditImage是一个Image控件,在后台代码中我想给它指定Source的属性。我先如下方式进行:

BitmapImage image = new

BitmapImage(new Uri(strImagePath, UriKind.Absolute));

imageEditImage.Source =

image;

strImagePath是图片的绝对路径。

第一篇文章里作者没有详细说明UriKind参数的作用,现在看到这个才恍然大悟,原来这个顾名思义,是指定Uri的类型的,可设为"相对路径"或"绝对路径",那就好办了。

既然之前使用的是相对路径(Relative),但搞不清楚,那现在就用绝对路径(Absolute)吧:

//载入图片;

Uri

uri = new Uri(System.Environment.CurrentDirectory + "\\" +

food.food_pic_url, UriKind.Absolute);

BitmapImage bitmap = new

BitmapImage(uri);

image.Source = bitmap;

其中System.Environment.CurrentDirectory用于获取当前目录(该进程从中启动的目录)的完全限定目录,即可执行文件(.exe)所在的路径,具体可参考——总​结​C​#​获​取​当​前​路​径​的​7​种​方​法

最后效果:

谢谢阅读!

你可能感兴趣的:(wpf,图片绝对路径引用)