/// <summary> /// Detach project editor from container control. /// </summary> public void DetachEditor() { if (_projectEditor != null) { _projectEditor.CanvasPlatform.Invalidate = null; _projectEditor.CanvasPlatform.ResetZoom = null; _projectEditor.CanvasPlatform.AutoFitZoom = null; _projectEditor.LayoutPlatform.LoadLayout = null; _projectEditor.LayoutPlatform.SaveLayout = null; _projectEditor.LayoutPlatform.ResetLayout = null; zoomBorder.InvalidatedChild = null; _inputProcessor.Dispose(); _inputProcessor = null; _inputSource = null; zoomBorder.AllowDrop = false; zoomBorder.DragEnter -= ZoomBorder_DragEnter; zoomBorder.Drop -= ZoomBorder_Drop; } _projectEditor = null; }
/// <summary> /// Attach project editor to container control. /// </summary> public void AttachEditor() { _projectEditor = DataContext as ProjectEditor; if (_projectEditor != null) { _projectEditor.CanvasPlatform.Invalidate = () => { }; _projectEditor.CanvasPlatform.ResetZoom = () => zoomBorder.Reset(); _projectEditor.CanvasPlatform.AutoFitZoom = () => zoomBorder.AutoFit(); _projectEditor.LayoutPlatform.LoadLayout = () => OnLoadLayout(); _projectEditor.LayoutPlatform.SaveLayout = () => OnSaveLayout(); _projectEditor.LayoutPlatform.ResetLayout = () => OnResetLayout(); zoomBorder.InvalidatedChild = InvalidateChild; _inputSource = new WpfInputSource(zoomBorder, drawableControl, (point) => point); _inputProcessor = new InputProcessor(); _inputProcessor.Connect(_inputSource, _projectEditor); zoomBorder.AllowDrop = true; zoomBorder.DragEnter += ZoomBorder_DragEnter; zoomBorder.Drop += ZoomBorder_Drop; } }