private void UpdateMap() { Graphics graphics = CreateGraphics(); graphics.FillRectangle(new SolidBrush(Color.Black), ClientRectangle); layer.draw(graphics, view); }
public void UpdateMap() { //清空之前占用的绘图资源 if (backMap != null) { if (backMap.Graphics != null) { backMap.Graphics.Dispose(); } backMap.Dispose();//释放backmap的所有资源 } //初始化绘图资源 Graphics frontgraphics = CreateGraphics(); backMap = backWindow.Allocate(frontgraphics, ClientRectangle);//创建使用指定的像素格式的指定大小的图像缓冲区 frontgraphics.Dispose(); //在背景窗口中绘图 Graphics graphics = backMap.Graphics; graphics.FillRectangle(new SolidBrush(Color.Black), ClientRectangle); layer.draw(graphics, view); //把绘图内容搬到前端 Invalidate();//使整个控件画面无效并重绘控件 UpdateStatusBar(); }
public void UpdateMap() { ////清空之前占用的绘图资源 //if (backMap != null) //{ // if (backMap.Graphics != null) // { // backMap.Graphics.Dispose(); // } // backMap.Dispose();//释放backmap的所有资源 //} ////初始化绘图资源 //Graphics frontgraphics = CreateGraphics(); //backMap = backWindow.Allocate(frontgraphics, ClientRectangle);//创建使用指定的像素格式的指定大小的图像缓冲区 //frontgraphics.Dispose(); ////在背景窗口中绘图 //Graphics graphics = backMap.Graphics; //graphics.FillRectangle(new SolidBrush(Color.Black), ClientRectangle); //layer.draw(graphics,view); ////把绘图内容搬到前端 //Invalidate();//使整个控件画面无效并重绘控件 //原始方法 不同上 if (ClientRectangle.Width * ClientRectangle.Height == 0) { return; } //确保view窗口尺寸 view.UpdateRectangle(ClientRectangle); //建立背景窗口 if (bitbackwindow != null) { bitbackwindow.Dispose(); } bitbackwindow = new Bitmap(ClientRectangle.Width, ClientRectangle.Height); //在背景窗口绘图 Graphics g = Graphics.FromImage(bitbackwindow); g.FillRectangle(new SolidBrush(Color.LightBlue), ClientRectangle); layer.draw(g, view); //把背景窗口绘制到前景 Graphics frontgraphics = CreateGraphics(); frontgraphics.DrawImage(bitbackwindow, 0, 0); UpdateStatusBar(); }