我的PictureBox中有图片,我想要当图像过大时,我点击自适应尺寸按钮,图片能完全显示在PictureBox中且图片不变形。可是按照我的代码只是图片按照要求显示了,但是实际尺寸并没有变化,我想让pictureBox中的图片的尺寸就是窗口显示的那么大尺寸,而pictureBox的尺寸等于里面图片尺寸变化后的尺寸。我的关键代码:
//自适应尺寸
private void adaptButton_Click(object sender, EventArgs e)
{
//获取屏幕的宽度和高度
int w = Screen.PrimaryScreen.Bounds.Width;
int h = Screen.PrimaryScreen.Bounds.Height;
ddoc.pictureBox1.Location = new Point(0, 0);
ddoc.pictureBox1.Size = new Size(w, h); ddoc.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
//自适应尺寸
private void adaptButton_Click(object sender, EventArgs e)
{
//获取屏幕的宽度和高度
int w = Screen.PrimaryScreen.Bounds.Width;
int h = Screen.PrimaryScreen.Bounds.Height;
ddoc.pictureBox1.Location = new Point(0, 0);
ddoc.pictureBox1.Size = new Size(w, h); ddoc.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
if (File.Exists(strWelcome))
{
Bitmap bm = new Bitmap(Image.FromFile(strWelcome), ddoc.pictureBox1.Width, ddoc.pictureBox1.Height);
ddoc.pictureBox1.Image = bm;
}
真心没懂你的意思,组织下吧,要不不好看问题。。
1、源图片大小不变,只随picturebox的大小变化而变化
2、源图片大小也要根据picturebox的大小变化而发生变化
不晓得是哪种
如果是第一种,在相应的位置用我给你的代码,或者sizemode中设置属性为 StretchImage即可
如果是第二种,稍微要调整下了
你先确定下是哪种吧
string strWelcome = System.Windows.Forms.Application.StartupPath + "\\welcome.jpg";
if (File.Exists(strWelcome))
{
Bitmap bm = new Bitmap(Image.FromFile(strWelcome), ddoc.pictureBox1.Width, ddoc.pictureBox1.Height);
bm.Save("filename");
}然后再加载图片到你的ddoc.pictureBox1,按你的需求就必须要转了
if (File.Exists(strWelcome))
{
Bitmap bm = new Bitmap(Image.FromFile(strWelcome), ddoc.pictureBox1.Width, ddoc.pictureBox1.Height);
bm.Save("filename");
}
这大个例子放在这,你看明白就直接可以用了。
bm.Save()是把你转换后的图片另存为你指定的文件名,把这个保存了的图片再拿出来给你的ddoc.pictureBox1控件赋值不就可以完成了么