private void TryReCreateCanvasHost(bool isUseDefaultBackgroudLayer) { if (_runtime == null) { return; } if (_canvasHost == null) { _canvasHost = new CanvasHost(); _canvasHost.CreateCanvas(); _canvasHost.Dock = DockStyle.Fill; _canvasHost.Canvas.IsDrawScalePercent = false; _canvasHost.Canvas.OnEnvelopeChanged += new EventHandler((sender, e) => { _isNeedReRender = true; }); if (_canvasHost.Canvas != null && _canvasHost.Canvas.CanvasSetting != null && _canvasHost.Canvas.CanvasSetting.RenderSetting != null) { _canvasHost.Canvas.CanvasSetting.RenderSetting.BackColor = Color.White; } TryApplyDefaultBackgroudLayer(isUseDefaultBackgroudLayer); Controls.Add(_canvasHost); } _canvasHost.Size = Size; if (_buffer == null || _buffer.Width != _canvasHost.Width || _buffer.Height != _canvasHost.Height) { if (_buffer != null) { _buffer.Dispose(); } _buffer = new Bitmap(_canvasHost.Width, _canvasHost.Height, PixelFormat.Format24bppRgb); } }
private void button11_Click(object sender, EventArgs e) { _rasterLayer = null; this.Controls.Remove(canvasHost1); _canvas = null; CanvasHost host = this.canvasHost1; this.canvasHost1 = null; (host as IDisposable).Dispose(); (host as UserControl).Dispose(); GC.Collect(); }
void IDisposable.Dispose() { if (_canvasHost != null) { if (_canvasHost as IDisposable != null) { (_canvasHost as IDisposable).Dispose(); } _canvasHost.Dispose(); _canvasHost = null; } if (_buffer != null) { _buffer.Dispose(); _buffer = null; } _runtime = null; _dataFrame = null; }