WPF - Image 图像控件
Image 显示图像的控件,可以使用 Image 对象或 ImageBrush 对象。 Image 对象显示图像,而 ImageBrush 对象用图像绘制另一个对象。 图像源是通过引用使用多种支持格式的图像文件来指定的。 它可以显示以下格式−
- 位图 (BMP)
- 标记图像文件格式 (TIFF)
- 图标(ICO)
- 联合摄影专家组 (JPEG)
- 图形交换格式 (GIF)
- 便携式网络图形 (PNG)
- JPEG XR
Image类的层次继承如下
Image类的常用属性
序号 | 属性和描述 |
---|---|
1 | CanDrag 获取或设置一个值,该值指示元素是否可以在拖放操作中作为数据进行拖动。 (继承自UIElement) |
2 | Height 获取或设置 FrameworkElement 的建议高度。 (继承自FrameworkElement) |
3 | HorizontalAlignment 获取或设置在布局父级(例如面板或项目控件)中组合 FrameworkElement 时应用于该 FrameworkElement 的水平对齐特征。 (继承自FrameworkElement) |
4 | Margin 获取或设置 FrameworkElement 的外边距。 (继承自FrameworkElement) |
5 | Name 获取或设置对象的标识名称。 当 XAML 处理器从 XAML 标记创建对象树时,运行时代码可以通过该名称引用 XAML 声明的对象。 (继承自FrameworkElement) |
6 | Opacity 获取或设置对象的不透明度程度。 (继承自UIElement) |
7 | PlayToSource 获取图像用于播放场景时传输的信息。 |
8 | Resources 获取本地定义的资源字典。 在 XAML 中,您可以通过 XAML 隐式集合语法将资源项建立为 FrameworkElement.Resources 属性元素的子对象元素。 (继承自FrameworkElement) |
9 | SourceProperty 标识源依赖属性。 |
10 | Stretch 获取或设置一个值,该值描述如何拉伸图像以填充目标矩形。 |
11 | StretchProperty 标识 Stretch 依赖属性。 |
12 | Style 获取或设置在布局和渲染期间应用于此对象的实例 Style。 (继承自FrameworkElement) |
13 | VerticalAlignment 获取或设置在父对象(例如面板或项控件)中组成 FrameworkElement 时应用于该 FrameworkElement 的垂直对齐特征。 (继承自FrameworkElement) |
14 | Width 获取或设置 FrameworkElement 的宽度。 (继承自FrameworkElement) |
15 | wSource 获取或设置图像的来源。 |
Image 类常用事件
序号 | 事件和描述 |
---|---|
1 | DataContextChanged 当 FrameworkElement.DataContext 属性的值更改时发生。 (继承自FrameworkElement) |
2 | DragEnter 当输入系统报告以此元素为目标的基础拖动事件时发生。 (继承自UIElement) |
3 | DragLeave 当输入系统报告以此元素为原点的基础拖动事件时发生。 (继承自UIElement) |
4 | DragOver 当输入系统报告将此元素作为潜在放置目标的基础拖动事件时发生。 (继承自UIElement) |
5 | DragStarting 启动拖动操作时发生。 (继承自UIElement) |
6 | Drop 当输入系统报告将此元素作为放置目标的基础放置事件时发生。 (继承自UIElement) |
7 | DropCompleted 拖放操作结束时发生。 (继承自UIElement) |
8 | GotFocus 当 UIElement 获得焦点时发生。 (继承自UIElement) |
9 | ImageFailed 当存在与图像检索或格式相关的错误时发生。 |
10 | ImageOpened 当图像源下载并解码成功时发生。 您可以使用此事件来确定图像源的自然大小。 |
11 | KeyDown 当 UIElement 具有焦点时按下键盘按键时发生。 (继承自UIElement) |
12 | KeyUp 在 UIElement 具有焦点时释放键盘按键时发生。 (继承自UIElement) |
13 | SizeChanged 当 FrameworkElement 上的 ActualHeight 或 ActualWidth 属性更改值时发生。 (继承自FrameworkElement) |
示例
让我们创建一个名为 WPFImageControl 的新 WPF 项目。
首先使用Grid.RowDefinition将屏幕分为两行。
从工具箱中拖动三个图像控件。
以下示例显示三个图像。 第一个是简单的图像; 在第二张图片中,设置了不透明度属性; 在第三张图片中,一个 Eclipse 是用 ImageBrush 绘制的。
XAML代码如下 −
<Window x:Class = "WPFImageControl.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" Title = "MainWindow" Height = "500" Width = "604"> <Grid> <Grid.RowDefinitions> <RowDefinition Height = "1*"/> <RowDefinition Height = "1*"/> </Grid.RowDefinitions> <StackPanel Orientation = "Horizontal"> <Image Width = "200" Source = "Images\red_rock_01.jpg" VerticalAlignment = "Top" Margin = "30"/> <Image Width = "200" Source = "Images\red_rock_01.jpg" VerticalAlignment = "Top" Margin = "30" Opacity = "0.5"/> </StackPanel> <StackPanel Grid.Row = "1"> <Ellipse Height = "100" Width = "200" HorizontalAlignment = "Center" Margin = "30"> <Ellipse.Fill> <ImageBrush ImageSource = "Images\tahoe_01.jpg" /> </Ellipse.Fill> </Ellipse> </StackPanel> </Grid> </Window>
当你编译并执行上面的代码时,会产生以下窗口 −
我们建议您执行上面的示例代码并尝试 Image 类的其他属性和事件。