我在窗体中有一个picturebox控件,通过paint消息画了一些线段等,这些线段相对pic控件的位置不变,再改变pic控件大小时,怎么重新绘制这些线段,使相对pic的位置不变。Resize消息中怎么设置?还是在paint时就用比例画?哪位高手明示,最好有代码。

解决方案 »

  1.   

    在paint时就用比例画
      

  2.   

    不要沉下去呀当窗口大小改变,picturebox的大小也会改变,里面绘制的东西要随着picturebox大小的变化等比例变化,高手们,有什么方法么?
      

  3.   

    设置picturebox的sizemode属性为zoom
    image属性为你画的图
      

  4.   


    首先我是在picturebox上绘制一些线段和文字,没有创建image,其次,绘制时paint时没有按比例,只是获得坐标画,所以zoom是不可能实现的。
      

  5.   


    那就不是简单的绘制了,最好深入开发,以对象方式。
    打个比方来说,有个类Line来负责绘制线条,就不再是绘制在picturebox的画布上了。
      

  6.   


     private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                SizeF sizeF = new SizeF(200, 168);//PictureBox的原始尺寸            //计算水平和垂直缩方比率
                float fx = this.pictureBox1 .Width / sizeF.Width;
                float fy = this.pictureBox1 .Height / sizeF.Height;            //对设置进行逻辑缩放
                e.Graphics.ScaleTransform(fx, fy);            e.Graphics.DrawEllipse(Pens.Blue, new RectangleF(0, 0, sizeF.Width, sizeF.Height));        }
      

  7.   

    http://blog.csdn.net/jianuMan/archive/2010/06/18/5677839.aspx
    这是画图例子如果是在PictureBox上 画线  这个好办设置PictureBox的Size的时候 修改线 两个点的 x差值 和 y差值