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);
}