我的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;
        }

解决方案 »

  1.   

    直接上代码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);
        ddoc.pictureBox1.Image = bm;
    }
      

  2.   

    处理后的。。不就是你ddoc.pictureBox1的大小么。。
    真心没懂你的意思,组织下吧,要不不好看问题。。
      

  3.   

    就是说:假如我有一张尺寸较大的图片,我点击“自适应”按钮后,图片能完全显示在PictureBox中且图片不变形。可是按照咱们的代码只是图片按照要求显示了,但是实际尺寸并没有变化,我想让pictureBox中的图片的尺寸就是窗口显示的那么大尺寸,而pictureBox的尺寸等于里面图片尺寸“变化后”的尺寸,明白了吗 呵呵
      

  4.   

    sizemode中设置属性为  StretchImage
      

  5.   

    我理解了2种意思
    1、源图片大小不变,只随picturebox的大小变化而变化
    2、源图片大小也要根据picturebox的大小变化而发生变化
    不晓得是哪种
    如果是第一种,在相应的位置用我给你的代码,或者sizemode中设置属性为 StretchImage即可
    如果是第二种,稍微要调整下了
    你先确定下是哪种吧
      

  6.   

    第二种情况。sizeMode不能设置为 StretchImage,那样图片会被拉伸变形的~
      

  7.   

    第二种情况。sizeMode不能设置为 StretchImage,那样图片会被拉伸变形的~
      

  8.   


    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,按你的需求就必须要转了
      

  9.   

    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");
    }
    这大个例子放在这,你看明白就直接可以用了。
    bm.Save()是把你转换后的图片另存为你指定的文件名,把这个保存了的图片再拿出来给你的ddoc.pictureBox1控件赋值不就可以完成了么
      

  10.   

    那好吧  我想说假如说PictureBox中的图片原来是2400*1600,现在我点击自适应尺寸让它变为1200*800,当然PictureBox和里面图片的尺寸始终是一样的。你这代码能实现呗?
      

  11.   

    不是很懂你的意思,假如要自适应设置picturebox的dock属性就行了
      

  12.   

    设置sizemode的属性为:StretchImage