c# 动态改变panel大小的问题

来源:互联网 发布:windows防火墙功能 编辑:程序博客网 时间:2024/06/09 23:16

c#中,初始化一个panel大小为(100,100),绘制一张大小为(200X200)的图片在panel上,屏幕会显示图片100X100的大小,我点击“扩大”按钮,执行panel.Width = 200,panel.Height= 200,重新绘制图片,发现绘制的区域仍然是100x100的区域,并不是200x200。(图片大小肯定超过100*100)

 

 

     /**最终绘制*/
        private void repaint_mainpanel()
        {
            if(img != null)
                g.DrawImage(img, 0, 0, img.Width, img.Height);
        }

         /**确定按钮, 改变了panel的大小 ,并且重新绘制*/
        private void change_size_Click(object sender, EventArgs e)
        {
            if (panel_back.Width == 100)
            {
                panel_back.Width = 200;
                panel_back.Height = 200;


            }
            else
            {
                panel_back.Width = 100;
                panel_back.Height = 100;
            }

            repaint_mainpanel();
                  
        }

 

如图所示,开始时,panel  100*100 ,绘制图片,显示出了100*100的区域,点击扩大执行上述代码后,panel扩大到200*200,再次绘制图片,结果发现,绘制的区域依旧是100*100(如下图)。(黑色区域为panel的范围)

 

 

 

 

后来发现是画笔没有重新设置,在创建画笔的时候,他默认了绘制图片的范围!所有,画笔必须重新设置。

 

 

原创粉丝点击