如何:在运行时修改图片的大小或位置(Windows 窗体)

更新:2007 年 11 月

如果您在窗体上使用 Windows 窗体 PictureBox 控件,则可将其 SizeMode 属性设置为:

  • 将图片的左上角与控件的左上角对齐

  • 使图片在控件内居中

  • 调整控件的大小以适合其显示的图片

  • 拉伸所显示的任何图片以适合控件

拉伸图片(尤其是位图格式的图片)可能导致图像质量受损。图元文件(运行时绘制图像的图形指令列表)比位图更适合于拉伸图片。

在运行时设置 SizeMode 属性

  • SizeMode 设置为 Normal(默认值)、AutoSizeCenterImageStretchImageNormal 表示图像将放置在控件的左上角;如果图像比控件大,则会对其下边缘和右边缘进行剪裁。CenterImage 表示图像将在控件中居中;如果图像比控件大,则会对图片的各外边缘进行剪裁。AutoSize 表示控件的大小将调整为图像的大小。StretchImage 则与之相反,它表示图像的大小将调整为控件的大小。

    在下面的示例中,图像位置的路径设置是 My Documents 文件夹。这样做是因为可假定大多数运行 Windows 操作系统的计算机都包含此目录。这还将允许具有最低系统访问级别的用户安全地运行应用程序。下面的示例假定一个已添加了 PictureBox 控件的窗体。

    Private Sub StretchPic()
       ' Stretch the picture to fit the control.
       PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
       ' Load the picture into the control.
       ' You should replace the bold image 
       ' in the sample below with an icon of your own choosing.
       PictureBox1.Image = Image.FromFile _
       (System.Environment.GetFolderPath _
       (System.Environment.SpecialFolder.Personal) _
       & "\Image.gif")
    End Sub
    
    private void StretchPic(){
       // Stretch the picture to fit the control.
       PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
       // Load the picture into the control.
       // You should replace the bold image 
       // in the sample below with an icon of your own choosing.
       // Note the escape character used (@) when specifying the path.
       PictureBox1.Image = Image.FromFile _
       (System.Environment.GetFolderPath _
       (System.Environment.SpecialFolder.Personal) _
       + @"\Image.gif")
    }
    
    private void StretchPic(){
       // Stretch the picture to fit the control.
       pictureBox1.set_SizeMode(PictureBoxSizeMode.StretchImage);
       // Load the picture into the control.
       // You should replace "image.gif" in the sample below 
       // with an icon of your own choosing.
       pictureBox1.set_Image(Image.FromFile
       (System.Environment.GetFolderPath
       (System.Environment.SpecialFolder.Personal)
       + "\\Image.gif"));
    }
    
    private:
       void StretchPic()
       {
          // Stretch the picture to fit the control.
          pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage;
          // Load the picture into the control.
          // You should replace the bold image 
          // in the sample below with an icon of your own choosing.
          pictureBox1->Image = Image::FromFile(String::Concat(
             System::Environment::GetFolderPath(
             System::Environment::SpecialFolder::Personal),
             "\\Image.gif"));
       }
    

请参见

任务

如何:使用设计器加载图片(Windows 窗体)

如何:在运行时设置图片(Windows 窗体)

参考

PictureBox

PictureBox 控件概述(Windows 窗体)

其他资源

PictureBox 控件(Windows 窗体)