C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件

发布时间:2024-10-26 12:01

在C#的图形和图像类控件中,PictureBox是用于显示图像,而ImageList只是提供一个存储图像的集合,它本身并不显示 。

图像都是由Image类的对象进行设置的,其格式可以为.bmp、.gif、.jpg或者其它元文件格式。其中,以.gif为后缀的GIF(Graphics Interchange Format)文件和以.jpg为后缀的JPEG(Joint Photographic Expert Group)文件都是得到广泛应用的图像文件格式。

ImageList控件

ImageList控件是C#里面一个保存图片集合的控件,该控件可以保存图片列表,然后根据不同的选择,显示不同的图片,但是每个图像的大小必须相同。

1、ImageList控件的常用属性

Name属性:该属性表示控件名称,可以用来调用或者查找。

ColorDepth属性:用来呈现图像的颜色数,可以是Depth4Bit、Depth8Bit、Depth16Bit或者Depth32Bit。

GenerateMember属性:这个属性表示是否为控件创建成员变量,一般默认为True。

Images属性:这个属性表示图像的集合。可以根据索引来访问这个集合中的图片。

ImageSize属性:这个属性表示图片的大小,包括宽和高。一般有16.16和32.32两种常见的大小。

2、在ImageList控件中添加和移除图片

首先在属性面板中拖曳出ImageList控件,然后找到Images属性,并单击...按钮,就会弹出一个“图像集合编辑器”对话框,最后通过该对话框实现图片的添加和删除。

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第1张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第2张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第3张图片

注意:ImageList控件不能显示图像,若要显示它存储的图像需要借用第二个控件进行显示。

PictureBox控件

PictureBox控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG或GIF文件的图形。如果控件不足以显示 整幅图像,由可以裁剪图像以适应控件的大小。

编写程序,通过选择PictureBox控件的SizeMode属性值,完成对图片的添加。

添加两个Label控件,命名为“原图:”和“操作结果”。

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第4张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第5张图片

添加两个PictureBox控件,一个用于存放原图,另一个存放操作结果

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第6张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第7张图片

 添加GroupBox控件,命名为“SizeMode属性”:

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第8张图片

 

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第9张图片

 在GroupBox控件中添加五个RadioButton控件和五个Label控件。

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第10张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第11张图片

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第12张图片

 

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第13张图片

 五个RadioButton控件的Text属性中输入枚举值,五个Label控件的Text属性中输入枚举值的说明。

 SizeMode属性有以下五个枚举值

  1. Normal:图片置于控件左上角,图片大于控件的部分会被剪裁。
  2. StretchImage:图片调整大小去适应控件。
  3. AutoSize:控件调整大小去适应图片。
  4. CenterImage:图片处于控件中心。
  5. Zoom:图片去适应控件,但是图片宽度比例不变。

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第14张图片

 Form1_Load、五个radioButton的CheckedChanged事件:

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第15张图片

完整代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            label3.Visible = false;     //控件的可见性
            label4.Visible = false;
            label5.Visible = false;
            label6.Visible = false;
            label7.Visible = false;
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
            label3.Visible = true;     //设置label3控件可见
            label4.Visible = false;
            label5.Visible = false;
            label6.Visible = false;
            label7.Visible = false;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            label3.Visible = false;
            label4.Visible = true;     //设置label4控件可见
            label5.Visible = false;
            label6.Visible = false;
            label7.Visible = false;
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            label3.Visible = false;
            label4.Visible = false;
            label5.Visible = true;     //设置label5控件可见
            label6.Visible = false;
            label7.Visible = false;
        }

        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            label3.Visible = false;
            label4.Visible = false;
            label5.Visible = false;
            label6.Visible = true;     //设置label6控件可见
            label7.Visible = false;
        }

        private void radioButton5_CheckedChanged(object sender, EventArgs e)
        {
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            label3.Visible = false;
            label4.Visible = false;
            label5.Visible = false;
            label6.Visible = false;
            label7.Visible = true;     //设置label7控件可见
        }
    }
}

 运行结果如下:

C#应用程序界面开发进阶——高级窗体控件(1)——图形和图像类控件_第16张图片

不显示图片,搞不清楚。 

 

 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号