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 类的其他属性和事件。

❮ wpf_controls.html