diff --git a/source/Components/AvalonDock/Controls/LayoutDocumentTabItem.cs b/source/Components/AvalonDock/Controls/LayoutDocumentTabItem.cs index c3881764..97da1260 100644 --- a/source/Components/AvalonDock/Controls/LayoutDocumentTabItem.cs +++ b/source/Components/AvalonDock/Controls/LayoutDocumentTabItem.cs @@ -108,6 +108,8 @@ protected virtual void OnModelChanged(DependencyPropertyChangedEventArgs e) /// protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { + if (!IsLoaded) return; + base.OnMouseLeftButtonDown(e); CaptureMouse(); _allowDrag = false; @@ -121,6 +123,8 @@ protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) /// protected override void OnMouseMove(MouseEventArgs e) { + if (!IsLoaded) return; + base.OnMouseMove(e); _isMouseDown = Mouse.LeftButton == MouseButtonState.Pressed && _isMouseDown; if (_isMouseDown) @@ -160,6 +164,8 @@ protected override void OnMouseMove(MouseEventArgs e) /// protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) { + if (!IsLoaded) return; + _isMouseDown = false; _allowDrag = false; if (IsMouseCaptured) ReleaseMouseCapture(); @@ -169,6 +175,8 @@ protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) /// protected override void OnMouseLeave(MouseEventArgs e) { + if (!IsLoaded) return; + base.OnMouseLeave(e); _isMouseDown = false; } @@ -176,6 +184,8 @@ protected override void OnMouseLeave(MouseEventArgs e) /// protected override void OnMouseEnter(MouseEventArgs e) { + if (!IsLoaded) return; + base.OnMouseEnter(e); _isMouseDown = false; } @@ -183,11 +193,13 @@ protected override void OnMouseEnter(MouseEventArgs e) /// protected override void OnMouseDown(MouseButtonEventArgs e) { + if (!IsLoaded) return; + if (LayoutItem != null && e.ChangedButton == MouseButton.Middle && LayoutItem.CloseCommand.CanExecute(null)) { LayoutItem.CloseCommand.Execute(null); } - + base.OnMouseDown(e); }