使用picturebox显示图片,如果图片大小大于picturebox的大小,则图片会显示不全,而且也没有滚动条,如何才能加上滚动条让图片显示全(MSDN上的例子我试了,好像不行)部分代码:
viewData_pictureBox.SizeMode=PictureBoxSizeMode.Normal;
viewData_pictureBox.Image=Image.FromFile("c:\\tempfile",false);

解决方案 »

  1.   

    msdn上有关将 PictureBox.SizeMode 设置为 Normal(默认)、AutoSize、CenterImage 或 StretchImage。Normal 表示图像放置在控件的左上角;如果图像大于控件,则剪裁图像的右下边缘。CenterImage 表示图像在控件内居中;如果图像大于控件,则剪裁图片的外边缘。AutoSize 表示将控件的大小调整为图像的大小。StretchImage 则相反,表示将图像的大小调整到控件的大小。
      

  2.   

    viewData_pictureBox.SizeMode=PictureBoxSizeMode.StretchImage;
    图片会自动按照比例缩放来完全显示在你的PictureBox中。
      

  3.   

    呵呵,我了解这四种情况的差别
    现在的问题是picturebox是固定大小的,如果图像比picturebox大的话怎样才能出滚动条滚动图像
      

  4.   

    to:syliuxybj() 
    可是设成StretchImage模式的话图像会失真,现在要的就是原样显示,怎么才能出滚定条MSDN上到是有个示例,我试了下,好像还是有问题,望各位DX解答
      

  5.   

    看了看 picturebox好象没有滚动条的属性(不知道是不是这样)
    我想那你可以来调整显示图片的这个界面来实现图片大不完全显示的问题.
    this.Height = 窗体中除了pictureBox控件的总高度(picturebox放窗体的最底下) + image.Height;
    //判断加了图片高度后高度是否大于原来的窗体高度
    if(this.Height > Screen.GetWorkingArea(this).Height || this.Width > Screen.GetWorkingArea(this).Width)
    {
                      //是否实现自动滚动
    this.AutoScroll = true;
                                       //重新设置窗体的大小
    Size size = new Size(Screen.GetWorkingArea(this).Width,Screen.GetWorkingArea(this).Height);
                                       //获取窗体可调整到的最大大小
    this.MaximumSize = size;
    this.Refresh();
    }
    else
    {
    this.AutoScroll = false;
    Size size = new Size(0,0);
    this.MaximumSize = size;
    this.Refresh();
    }
      

  6.   

    to:yitiaocheng_10(年华无眠)
    谢谢你帮我想的这个方法,但是我需要的是所有控件和窗体的大小不变,因为目前这个窗体上还有其他控件,而且整个窗体大小是不可以变
      

  7.   

    你可以在把 picturebox 放在 panel里面。
    然后 把 panel的AutoScroll 设置为true,
    同时你将picturebox 大小设置成 图片的大小。
    this.picturebox.width = this.image.width
    this.picturebox.height = this.image.height这样picturebox 大于 panel的时候,就可以用滚动条让图片显示全