首页 > 编程笔记 > C#笔记 阅读:54

C# PictureBox图片框用法详解(附带实例)

PictureBox 可以翻译为图片框,图标为:


这个控件可以创建图片框。单击此控件后,将鼠标光标移到窗体区可以看到 PictureBox 图标,可以拖曳此图标创建不同大小的图片框,图片框的默认名称 (Name) 是 pictureBox1。

窗口设计时使用 PictureBox 控件可以让界面更精彩,我们可以在创建窗体阶段加载图像,也可以在程序设计阶段加载图像,甚至还可以使用 PictureBox 设计动态图像。

目前 PictureBox 图片框可以接受位图 (.bmp)、中继文件 (.wmf)、图标 (.ico)、JPEG 图片 (.jpg 或 .jpeg)、PNG图片 (.png)、GIF文件 (.gif) 等。

C# PictureBox常用属性

PictureBox 的许多属性和窗体的相同,下面是其几个常用的属性:

PictureBox属性名称 说明
Image 图像文件
SizeMode 图像在图片框的显示方式,有 5 种显示方式:
  • Normal:这是默认,图像以正常大小显示在图片框左上角。
  • StretchImage:自动将图像放大到和图片框相同。
  • AutoSize:自动将图片框放大到和图像相同。
  • CenterImage:图像会在图片框中央。
  • Zoom:在不超出方块的范围内将图像宽和高用相同比例放大
Left 和 Top Top 表示图片框上边距离窗体上边的距离
Left 表示图片框左边距离窗体左边的距离。

C#程序设计图片框位置

读者应该很熟悉 Location 属性,在设计时我们可以使用 Location.X 和 Location.Y 代表水平 (X 轴) 和垂直 (Y轴) 的位置。也可以使用 Point 对象设定图片框坐标,如下所示:
pictureBox1.Location.X = 20;
pictureBox1.Location.Y = 10;
上述可以用下列 Point 对象简化程序设计:
pictureBox1.Location = new Point(20, 10);

此外,PictureBox 也有提供 Left 和 Top,所以上述程序也可以使用下列语句表示:
pictureBox1.Left = 20;
pictureBox1.Top = 10;

C#程序设计图像大小

当 SizeMode 属性设定为 AutoSize 时,就可以让图像和图片框大小相同。相信读者也熟悉了 Size 的设定,我们可以使用 Size.Width 和 Size.Height 属性设定图片框的大小如下所示:
pictureBox1.Size.Width = 200;
pictureBox1.Size.Height = 100;
也可以使用 Size 对象设计,如下所示:
pictureBox1.Size = new Size(200, 100);

C#加载与删除图像

1) 加载图像

可以使用 Image 属性取得加载图像的对象:
pictureBox1.Image = Image.FromFile(图像路径);
或是:
pictureBox1.Image = new Bitmap(图像路径);
注意,为了图片可移植性,建议将图片放在以后可执行文件相同的文件夹中,这也可以简化程序,只要写明图片名称即可。

2) 删除图像

pictureBox1.Image = null;

C#静态到动态图像实例

【实例】加载与删除图像的实例,这个程序同时可以设定 4 种 SizeMode。

注意,读者阅读至此应该已经熟悉了控件标题 (Text)、名称 (Name)、位置 (Location) 与大小 (Size),所以不再赘述,读者可以将程序加载在 Visual Studio 中进行查阅。

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

    // 加载图像按钮事件
    private void btnLoad_Click(object sender, EventArgs e)
    {
        pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
        pictureBox1.BorderStyle = BorderStyle.Fixed3D; // 图像外框
        pictureBox1.Image = Image.FromFile("sse.gif"); // 图像文件
    }

    // 删除图像按钮事件
    private void btnDelete_Click(object sender, EventArgs e)
    {
        pictureBox1.Image = null; // 删除显示图像
    }

    // Normal 显示模式按钮事件
    private void btnNormal_Click(object sender, EventArgs e)
    {
        pictureBox1.SizeMode = PictureBoxSizeMode.Normal; // 显示模式
    }

    // StretchImage 显示模式按钮事件
    private void btnStretch_Click(object sender, EventArgs e)
    {
        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; // 显示模式
    }

    // CenterImage 显示模式按钮事件
    private void btnCenter_Click(object sender, EventArgs e)
    {
        pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage; // 显示模式
    }

    // Zoom 显示模式按钮事件
    private void btnZoom_Click(object sender, EventArgs e)
    {
        pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; // 显示模式
    }
}
执行结果为:


上述程序第 11 行设定 SizeMode 为 Normal,第 12 行设定图片框外框为 Fixed3D,第 13 行显示图片 sse.gif,这个图片没有设定路径,所以必须与可执行文件 ch.exe 放在相同路径。其他方法则是依据功能按钮,然后设定图片在图片框显示的方法。

相关文章