赞
踩
对于此类图片,使用非常简单,在xaml中直接指定路径即可,如:
<Button>
<Button.Background>
<ImageBrush ImageSource="bg.jpg"/>
</Button.Background>
</Button>
对应的的C#代码为
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(new Uri("bg.jpg", UriKind.Relative));
button.Background = imageBrush;
其中imageBrush.ImageSource的类型为ImageSource,而ImageSource是个抽象类,
因此我们不能直接使用它,而是使用它的子类来代替,查阅MSDN,可以看到它们的继承关系:
System.Windows.Media.ImageSource
System.Windows.Media.DrawingImage
System.Windows.Media.Imaging.BitmapSource
二、存在于内存中的图片
对于只存在于内存中的图片,用以上方法就显得无能为力了,我们应该另寻他法,下面介绍一种方法:
先看代码:
//此处图片从文件中读入用以模拟内存中的图片
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap("bg.jpg");
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
ImageBrush imageBrush = new ImageBrush();
ImageSourceConverter imageSourceConverter = new ImageSourceConverter();
imageBrush.ImageSource = (ImageSource)imageSourceConverter.ConvertFrom(stream);
button.Background = imageBrush;
其中bitmap即是存在于内存中的Bitmap类型图片,此处使用直接加载本地图片文件模拟。
步骤是先将它保存到流中,再使用ImageSourceConverter 类的ConvertFrom方法从流中得到我们需要的图片
OK,本文到此结束,以上方法都是自己在使用中探索所得,如果有更好的方法,本人非常愿意和各位交流。
联系方式在Blog标题上
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。