Beispiel #1
0
        private void UpdateMap()
        {
            Graphics graphics = CreateGraphics();

            graphics.FillRectangle(new SolidBrush(Color.Black), ClientRectangle);
            layer.draw(graphics, view);
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
        }