Image控件的source属性设置显示图片,给出不包含在项目里面的图片不完善解决方案..
2014-03-31 16:44
471 查看
Image控件的source属性设置显示图片:
Source="/项目名称;component/文件夹名称(直接在项目文件夹中可忽略)/图片名称(有扩展名)"
string path =string.Format("/TestRoutedEvent;component/image/happyface.png");
Uri uri = new Uri(path, UriKind.Absolute);
//新建图片,由于我只找到新建.png格式的图片,故图像数据源的图像格式只能是.png了
BitmapImage bi = newBitmapImage();
bi.BeginInit();
bi.UriSource = uri;
bi.EndInit();
//设置source属性
Image.Source = bi;
协议:pack://
授权:有两种。一种用于访问编译时已经知道的文件(包含在项目里面),用application:///。一种用于访问编译时不知道、运行时才知道的文件(没有包含在项目里面),用siteoforigin:///。在加载图片时,如选用application:///,我们书写时候,一般用逗号代替斜杠,也就是可以改写作application:,,,。
路径:分为绝对路径和相对路径。选用相对路径,普适性更强。
包含在项目里面:
pack://application:,,,/images/my.jpg
当然,WPF默认Uri设置有pack://application:,,,,所以我们也可以直接将其写作:
/images/my.jpg
没有包含在项目里面:(注意这里用到了BitmapImage,故只能是.png格式图像)
string strPath = "pack://siteoforigin:,,,/image/my.png";
Uri pathUri = new Uri(strPath,UriKind.Absolute);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = pathUri;
bi.EndInit();
moldImage.Source = bi;
因为这里新建路径时候UriKind=Absolute(绝对路径),测试了一下,这里的根目录是项目的根目录,故包含图像的image文件夹应该在程序运行的目录下(即debug目录下)
如果想要设置成某个盘的下的文件夹,如E盘下的image文件夹,可得以下路径字符串
string strPath ="pack://siteoforigin:,,,/E://image/my.png";
还有使用这个没有包含在项目里面图像作为数据源时候,图像名称最好是英文,不然会出现错误图像显示不了。。。并且图像格式要是.png,因为好像只能新建BitmapImage,.jpeg格式的图像好像新建不了,如果要使用.jpeg图像,那只能包含在项目里面了。
把图像包含进项目里面的,设置source属性
直接在xaml的image添加,可在属性source中添加
语句:Source="/TestRoutedEvent;component/image/happyface.jpg"Source="/项目名称;component/文件夹名称(直接在项目文件夹中可忽略)/图片名称(有扩展名)"
在c#代码中设置source属性,必须为.png格式的图像
//图像路径string path =string.Format("/TestRoutedEvent;component/image/happyface.png");
Uri uri = new Uri(path, UriKind.Absolute);
//新建图片,由于我只找到新建.png格式的图片,故图像数据源的图像格式只能是.png了
BitmapImage bi = newBitmapImage();
bi.BeginInit();
bi.UriSource = uri;
bi.EndInit();
//设置source属性
Image.Source = bi;
那图像没包含在项目里面怎么办呢?
下面给出解决方案,不过不是很完美,还能使用!!!2.经过查阅,发现可以灵活的使用Uri加载图片,可实现不包含在项目里的图片给image.source赋值
Uri表达式的一般形式为:协议+授权+路径协议:pack://
授权:有两种。一种用于访问编译时已经知道的文件(包含在项目里面),用application:///。一种用于访问编译时不知道、运行时才知道的文件(没有包含在项目里面),用siteoforigin:///。在加载图片时,如选用application:///,我们书写时候,一般用逗号代替斜杠,也就是可以改写作application:,,,。
路径:分为绝对路径和相对路径。选用相对路径,普适性更强。
包含在项目里面:
pack://application:,,,/images/my.jpg
当然,WPF默认Uri设置有pack://application:,,,,所以我们也可以直接将其写作:
/images/my.jpg
没有包含在项目里面:(注意这里用到了BitmapImage,故只能是.png格式图像)
string strPath = "pack://siteoforigin:,,,/image/my.png";
Uri pathUri = new Uri(strPath,UriKind.Absolute);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = pathUri;
bi.EndInit();
moldImage.Source = bi;
因为这里新建路径时候UriKind=Absolute(绝对路径),测试了一下,这里的根目录是项目的根目录,故包含图像的image文件夹应该在程序运行的目录下(即debug目录下)
如果想要设置成某个盘的下的文件夹,如E盘下的image文件夹,可得以下路径字符串
string strPath ="pack://siteoforigin:,,,/E://image/my.png";
还有使用这个没有包含在项目里面图像作为数据源时候,图像名称最好是英文,不然会出现错误图像显示不了。。。并且图像格式要是.png,因为好像只能新建BitmapImage,.jpeg格式的图像好像新建不了,如果要使用.jpeg图像,那只能包含在项目里面了。
相关文章推荐
- ImageView的属性android:scaleType设置最佳比例图片显示
- poi导出Excel与项目的结合-案例(包含图片的设置)
- listview view属性设置为LargeIcon时,图片居中显示
- ie6不能正常显示png24透明图片解决方案_完善中...
- andorid布局文件里面的app:srcCompat设置的图片不显示
- JS设置IMAGE src属性无法显示图片解决
- VS2010 项目属性的默认包含路径设置方法
- 要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列
- 在html 的img属性里只显示图片的部分区域(矩形,给出开始点和结束点),其他部份不显示,也不要拉伸
- 图片文件不是项目一部分或其"生成操作"属性未设置为“资源”
- ImageView的属性android:scaleType设置最佳比例图片显示
- deviceOne 开发--gridview模版里面的imageview设置为-1,ios图片显示不全,AndroidOK
- poi导出Excel与项目的结合-案例(包含图片的设置)
- 用background-image:url();属性设置背景图片,为什么总是显示不出来?
- 此博文包含图片Unity3d发布成exe项目后的设置
- VS2010 项目属性的默认包含路径设置方法
- QT按钮包含图片与文字,以及鼠标停留备注显示,和sheetstyle风格设置。
- 包含了重复的“Content”项。.NET SDK 默认包含你项目目录中的“Content”项。可从项目文件中删除这些项;如果希望将其显式包含在项目文件中,可将“EnableDefaultContentItems”属性设置为“false”
- ImageView的属性android:scaleType设置最佳比例图片显示
- Tkinter 中 Toplevel 里 Label 参数里面设置的图片对象 不能正常显示