WPF - 图片



一个显示图像的控件,您可以使用 Image 对象或 ImageBrush 对象。Image 对象显示图像,而 ImageBrush 对象使用图像绘制另一个对象。图像源通过引用几种受支持格式的图像文件来指定。它可以显示以下格式:

  • 位图 (BMP)
  • 标记图像文件格式 (TIFF)
  • 图标 (ICO)
  • 联合图像专家组 (JPEG)
  • 图形交换格式 (GIF)
  • 便携式网络图形 (PNG)
  • JPEG XR

Image 类的层次继承如下:

Hierarchical of Image

Image 类常用属性

序号 属性及描述
1

CanDrag

获取或设置一个值,该值指示元素是否可以在拖放操作中作为数据拖动。(继承自 UIElement)

2

Height

获取或设置 FrameworkElement 的建议高度。(继承自 FrameworkElement)

3

HorizontalAlignment

获取或设置当 FrameworkElement 在布局父元素(例如面板或项目控件)中组合时应用的水平对齐特性。(继承自 FrameworkElement)

4

Margin

获取或设置 FrameworkElement 的外边距。(继承自 FrameworkElement)

5

Name

获取或设置对象的标识名称。当 XAML 处理器从 XAML 标记创建对象树时,运行时代码可以通过此名称引用 XAML 声明的对象。(继承自 FrameworkElement)

6

Opacity

获取或设置对象的透明度。(继承自 UIElement)

7

PlayToSource

获取如果 Image 用于 Play To 场景则传输的信息。

8

Resources

获取本地定义的资源字典。在 XAML 中,您可以将资源项设置为 frameworkElement.Resources 属性元素的子对象元素,通过 XAML 隐式集合语法。(继承自 FrameworkElement)

9

SourceProperty

标识 Source 依赖属性。

10

Stretch

获取或设置一个值,该值描述如何拉伸 Image 以填充目标矩形。

11

StretchProperty

标识 Stretch 依赖属性。

12

Style

获取或设置在此对象的布局和呈现期间应用的实例 Style。(继承自 FrameworkElement)

13

VerticalAlignment

获取或设置当 FrameworkElement 在父对象(例如面板或项目控件)中组合时应用的垂直对齐特性。(继承自 FrameworkElement)

14

Width

获取或设置 FrameworkElement 的宽度。(继承自 FrameworkElement)

15

Source

获取或设置图像的源。

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将屏幕分成两行。

  • 从工具箱中拖动三个 Image 控件。

  • 以下示例显示三个图像。第一个是简单的图像;在第二个图像中,设置了 opacity 属性;在第三个图像中,使用 ImageBrush 绘制了一个 Eclipse。

  • 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>

编译并执行上述代码后,将生成以下窗口:

Output of Image

我们建议您执行上述示例代码并尝试 Image 类的其他属性和事件。

wpf_controls.htm
广告