protected override void OnGotMouseCapture(MouseEventArgs eventArgs) { base.OnGotMouseCapture(eventArgs); if (Mouse.Captured != this) { return; } _borderIndicators = new BorderIndicators(this) { Owner = Window.GetWindow(this), Topmost = true, AllowDockLeft = AllowDockLeftBorderCheckBox.IsChecked ?? false, AllowDockRight = AllowDockRightBorderCheckBox.IsChecked ?? false, AllowDockTop = AllowDockTopBorderCheckBox.IsChecked ?? false, AllowDockBottom = AllowDockBottomBorderCheckBox.IsChecked ?? false, AllowDockInside = false, }; _paneIndicators = new PaneIndicators(this) { Owner = Window.GetWindow(this), Topmost = true, AllowDockLeft = AllowDockLeftCheckBox.IsChecked ?? false, AllowDockRight = AllowDockRightCheckBox.IsChecked ?? false, AllowDockTop = AllowDockTopCheckBox.IsChecked ?? false, AllowDockBottom = AllowDockBottomCheckBox.IsChecked ?? false, AllowDockInside = AllowDockCenterCheckBox.IsChecked ?? false, }; _borderIndicators.Show(); _paneIndicators.Show(); }
protected override void OnLostMouseCapture(MouseEventArgs eventArgs) { base.OnLostMouseCapture(eventArgs); if (_borderIndicators != null) { _borderIndicators.Close(); _borderIndicators = null; } if (_paneIndicators != null) { _paneIndicators.Close(); _paneIndicators = null; } }