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 。
这里right.gif是已经导入到项目中的图片。<Image Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Height="15" x:Name="statusImage" > <Image.Source> <BitmapImage UriSource="right.gif"/> </Image.Source> </Image>
那么如何在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,执行成功了。