首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【愚公系列】2023年09月 WPF控件专题 XAML介绍
2
【愚公系列】2023年09月 WPF控件专题 WPF应用程序组成
3
【愚公系列】2023年09月 WPF控件专题 Window窗体属性和事件
4
【愚公系列】2023年09月 WPF控件专题 Label、TextBox、PasswordBox控件介绍
5
【愚公系列】2023年09月 WPF控件专题 Button控件详解
6
【愚公系列】2023年09月 WPF控件专题 RadioButton控件详解
7
【愚公系列】2023年09月 WPF控件专题 CheckBox控件详解
8
【愚公系列】2023年09月 WPF控件专题 Image控件详解
9
【愚公系列】2023年09月 WPF控件专题 Border控件详解
10
【愚公系列】2023年09月 WPF控件专题 ComboBox控件详解
11
【愚公系列】2023年09月 WPF控件专题 ListBox控件详解
12
【愚公系列】2023年09月 WPF控件专题 DatePicker控件详解
13
【愚公系列】2023年09月 WPF控件专题 Calendar控件详解
14
【愚公系列】2023年09月 WPF控件专题 Slider控件详解
15
【愚公系列】2023年09月 WPF控件专题 ProgressBar控件详解
16
【愚公系列】2023年10月 WPF控件专题 StackPanel控件详解
17
【愚公系列】2023年10月 WPF控件专题 WrapPanel控件详解
18
【愚公系列】2023年10月 WPF控件专题 DockPanel控件详解
19
【愚公系列】2023年10月 WPF控件专题 Canvas控件详解
20
【愚公系列】2023年10月 WPF控件专题 Grid控件详解
21
【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解
22
【愚公系列】2023年10月 WPF控件专题 Expander控件详解
23
【愚公系列】2023年10月 WPF控件专题 TabControl控件详解
24
【愚公系列】2023年10月 WPF控件专题 Frame控件详解
25
【愚公系列】2023年10月 WPF控件专题 ListView控件详解
26
【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解
27
【愚公系列】2023年10月 WPF控件专题 Menu控件详解
28
【愚公系列】2023年10月 WPF控件专题 ContextMenu控件详解
29
【愚公系列】2023年10月 WPF控件专题 TreeView控件详解
30
【愚公系列】2023年10月 WPF控件专题 ToolBar控件详解
31
【愚公系列】2023年10月 WPF控件专题 ToolBarTray控件详解
32
【愚公系列】2023年10月 WPF控件专题 StatusBar控件详解
33
【愚公系列】2023年11月 WPF控件专题 MediaElement控件详解
34
【愚公系列】2023年11月 WPF控件专题 RichTextBox控件详解
35
【愚公系列】2023年11月 WPF控件专题 GridView控件详解
36
【愚公系列】2023年11月 WPF控件专题 Rectangle控件详解
37
【愚公系列】2023年11月 WPF控件专题 Popup控件详解
38
【愚公系列】2023年11月 WPF控件专题 OpenFileDialog控件详解
39
【愚公系列】2023年11月 WPF控件专题 SaveFileDialog控件详解
40
【愚公系列】2023年11月 WPF控件专题 RepeatButton控件详解
41
【愚公系列】2023年11月 WPF控件专题 Ellipse控件详解
42
【愚公系列】2023年11月 WPF控件专题 Polygon控件详解
43
【愚公系列】2023年11月 WPF控件专题 Path控件详解
44
【愚公系列】2023年11月 WPF控件专题 WindowFormsHost控件详解
45
【愚公系列】2023年11月 WPF控件专题 WebBrowser控件详解
46
【愚公系列】2023年11月 WPF控件专题 Validation控件详解
47
【愚公系列】2023年11月 WPF控件专题 Page控件详解
48
【愚公系列】2023年11月 WPF控件专题 PrintDialog控件详解
49
【愚公系列】2023年11月 WPF控件专题 Track控件详解
50
【愚公系列】2023年11月 WPF控件专题 Polyline控件详解

【愚公系列】2023年09月 WPF控件专题 Image控件详解

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。 🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。

原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。

自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。

🚀一、Image控件详解

在WPF中,Image控件用于显示图像。可以通过以下代码添加Image控件:

代码语言:html
复制
<Image Source="image.png" Width="200" Height="200"/>

其中,Source属性指定了要显示的图像的路径,Width和Height属性可以指定控件的宽度和高度。

可以在代码中通过设置Image控件的Source属性来更改显示的图像,例如:

代码语言:C#
复制
Image myImage = new Image();

myImage.Source = new BitmapImage(new Uri("image.png"));

此代码将创建一个新的Image控件,并将其显示为指定路径下的图像。BitmapImage类用于加载图像,并将其设置为Image控件的源。

🔎1.属性介绍

WPF中Image控件的常用属性如下:

  1. Source:设置或获取图像的源。可以是Uri、BitmapImage、BitmapFrame或其他派生自ImageSource的类型。
  2. Stretch:设置或获取在Image控件中如何拉伸图像以适合控件大小。可选值包括None、Fill、Uniform和UniformToFill。
  3. StretchDirection:设置或获取Stretch属性的方向。默认值为Both。可选值为UpOnly和DownOnly。
  4. Width:设置或获取Image控件的宽度大小。
  5. Height:设置或获取Image控件的高度大小。
  6. StretchUnit:设置或获取Stretch属性用于计算的单位。默认值为Pixel。
  7. DecodePixelWidth和DecodePixelHeight:设置或获取解码图像时的宽度和高度。这可用于控制图像的大小,从而节省内存。
  8. IsAsync:设置或获取是否异步加载图像。默认值为False。

除了上述属性,Image控件还具有其他一些属性,如Opacity、OpacityMask、HorizontalAlignment和VerticalAlignment等,可以帮助您更好地控制和定位图像。

🔎2.常用场景

WPF中的Image控件常用于以下场景:

  1. 显示静态图片。Image控件可以加载各种静态图片格式,包括PNG、JPG、BMP、GIF等等。
  2. 显示动态图片。WPF中使用Image控件可以轻松地显示GIF等动态图片格式。
  3. 源图像自适应。Image控件具备自适应大小的能力,可以根据容器大小自动调整图像的大小,从而更好地适应不同的窗口布局。
  4. 显示图形资源。除了加载外部图片文件,Image控件也可以直接加载XAML文件中的图形资源,这些资源可以是由Path、Ellipse、Rectangle或其他形状定义的图形对象,也可以是由Drawing对象定义的复杂图形。
  5. 显示视频帧。Image控件也可以用于显示实时视频流中的帧图像,这对于实现视频预览等功能非常有用。

Image控件在WPF中是非常常用的控件之一,它不仅可以用来展示静态图片和动态图片,还可以用来显示各种图形资源,非常灵活。

🔎3.具体案例

代码语言:c#
复制
<Grid>

    <!--Stretch 默认 uniform StretchDirection 默认 Both-->

    <Image Name="imgPic" HorizontalAlignment="Left" Height="238" Margin="128,67,0,0" Stretch="Fill"  VerticalAlignment="Top" Width="357"  />

    <Button Content="指定图像" HorizontalAlignment="Left" Margin="427,352,0,0" VerticalAlignment="Top" Width="75" Click="Button\_Click"/>



</Grid>
代码语言:c#
复制
private void Button\_Click(object sender, RoutedEventArgs e)

{

    //相对路径

    //imgPic.Source = new BitmapImage(new Uri("imgs/1111.jpg",UriKind.Relative));//Source ---  ImageSource

    //WPF 支持两种授权:application:/// 和 siteoforigin:///。

    // pack URI 方案 pack://授权/路径

    //授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置。

    //siteoforigin  图片文件  生成:内容     application---资源、内容

    //imgPic.Source = new BitmapImage(new Uri("pack://application:,,,/imgs/1111.jpg", UriKind.Absolute));

    imgPic.Source = new BitmapImage(new Uri(AppDomain.CurrentDomain.BaseDirectory+"/imgs/1111.jpg", UriKind.Absolute));

   

}

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

下一篇
举报
领券