WPF中Image的使用

Image:

Image控件加载图片包括加载动态图片,加载静态图片两种方式。
它主要设置的属性有如下几种:
Height,Width, HorizontalAlignment,VerticalAlignment,Name 等通用属性。还有一个source 属性。是用来真正显示图片的。
下面主要写下source属性的用法:


1 首先是在xaml文件中的使用方式
可以先创建一个WPF项目,向项目中首先导入图片资源,方法如下:
选择Existing Item,会出现下面的导入界面

下面的属性选择All Files,(为了显示出图片来),选择要导入的图片。OK,选择之后就导入成功了。
可以发现导入成功了,那么下面就在代码中使用它。
在xaml文件中是这样使用的:
<Image Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left"
               Height="15" x:Name="statusImage" Source="right.gif"></Image>

Source = " <图片名字>",这是因为在xaml中会有一种机制将字符串转换到所需要的资源。(个人也不是太了解)

但是在xaml.cs 代码中是不可以这样使用的,会报错。错误信息如下:
Error	1	Cannot implicitly convert type 'string' to 'System.Windows.Media.ImageSource'	
不能将string类型 隐式的转换到ImageSource类型。那么如何使用它呢。

先看一下一个类。
 statusImage.Source = new BitmapImage(new Uri("warning.png",UriKind.Relative)); 

BitmapImage 类

提供使用 可扩展应用程序标记语言 (XAML),用于加载的图像优化的专用 BitmapSource 。
构造函数:

  名称 说明
公共方法 BitmapImage() 初始化 BitmapImage 类的新实例。
公共方法 BitmapImage(Uri) 使用由提供的 Uri, BitmapImage 初始化类的新实例。
公共方法 BitmapImage(Uri, RequestCachePolicy) 初始化 BitmapImage 类的新实例与源是 Uri的图像并根据提供的 RequestCachePolicy缓存。


下面的代码示例在 可扩展应用程序标记语言 (XAML) 和代码演示如何使用 BitmapImage 。
<Image Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left"
               Height="15" x:Name="statusImage" >
            <Image.Source>
                <BitmapImage UriSource="right.gif"/>   
            </Image.Source>
</Image>

这里right.gif是已经导入到项目中的图片。


那么如何在xmal.cs文件中使用呢:使用它的构造函数中的一个。

 statusImage.Source = new BitmapImage(new Uri("warning.png",UriKind.Relative)); 
new 一个 BitmapImage赋给statusImage的source。 这里是使用的相对路径, warning图像已经存在于项目中。
也可以使用绝对路径,我们随便选择一个图片

修改代码如下,
statusImage.Source = new BitmapImage(new Uri("F:\\fail.png", UriKind.Absolute));
\\ 是为了转义字符。
Uri中第一个参数表示图片的路径,第二个参数表示图片路径的类型,有三种,如Absolute(绝对路径)、                        Relative(相对路径)、RelativeorAbsolute(两者中的一种)。



OK,执行成功了。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值