如何:在运行时修改图片的大小或位置(Windows 窗体)
更新:2007 年 11 月
如果您在窗体上使用 Windows 窗体 PictureBox 控件,则可将其 SizeMode 属性设置为:
将图片的左上角与控件的左上角对齐
使图片在控件内居中
调整控件的大小以适合其显示的图片
拉伸所显示的任何图片以适合控件
拉伸图片(尤其是位图格式的图片)可能导致图像质量受损。图元文件(运行时绘制图像的图形指令列表)比位图更适合于拉伸图片。
在运行时设置 SizeMode 属性
将 SizeMode 设置为 Normal(默认值)、AutoSize、CenterImage 或 StretchImage。Normal 表示图像将放置在控件的左上角;如果图像比控件大,则会对其下边缘和右边缘进行剪裁。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")); }