public void Attach(FrameCanvasEditor target)
 {
     Detach();
     Target = target;
     Target.DrawingSurface.PreviewMouseDown += OnMouseDown;
     Target.DrawingSurface.PreviewMouseMove += OnMouseMove;
     Target.DrawingSurface.PreviewMouseUp   += OnMouseUp;
     Target.DrawingSurface.MouseLeave       += OnMouseLeave;
     Target.ZoomChanged          += OnZoomChanged;
     Target.SelectedLayerChanged += OnSelectedLayerChanged;
     Target.FrameChanged         += OnFrameChanged;
     Attached?.Invoke(this);
 }
 public void Detach()
 {
     if (Target != null)
     {
         Target.DrawingSurface.PreviewMouseDown -= OnMouseDown;
         Target.DrawingSurface.PreviewMouseMove -= OnMouseMove;
         Target.DrawingSurface.PreviewMouseUp   -= OnMouseUp;
         Target.ZoomChanged          -= OnZoomChanged;
         Target.SelectedLayerChanged -= OnSelectedLayerChanged;
         Target.FrameChanged         -= OnFrameChanged;
         Target.ToolOptions.Children.Clear();
         Target.ExtensionPanel.Children.Clear();
         Detached.Invoke(this);
         Target = null;
     }
 }
 private void ZoomInCanvas_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     FrameCanvasEditor.ZoomIn();
 }
 private void ToggleGridVisibility_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     FrameCanvasEditor.ToggleGridVisibility();
     ShowGridMenuItem.IsChecked = FrameCanvasEditor.Grid.Visibility == Visibility.Visible;
 }