This commit is contained in:
NaBian committed 2023-09-24 23:39:56 +08:00
1 parent 5b0be3b1ab
commit ef5ab72301
1 file changed
+17 -3
@@ -257,7 +257,11 @@ public class TabItem : System.Windows.Controls.TabItem
{
base.OnMouseRightButtonDown(e);
if (VisualTreeHelper.HitTest(this, e.GetPosition(this)) == null) return;
if (!IsMouseOverHeader(e))
{
return;
}
IsSelected = true;
Focus();
}
@@ -300,7 +304,11 @@ public class TabItem : System.Windows.Controls.TabItem
{
base.OnMouseLeftButtonDown(e);
if (VisualTreeHelper.HitTest(this, e.GetPosition(this)) == null) return;
if (!IsMouseOverHeader(e))
{
return;
}
var parent = TabControlParent;
if (parent == null) return;
@@ -391,7 +399,8 @@ public class TabItem : System.Windows.Controls.TabItem
protected override void OnMouseDown(MouseButtonEventArgs e)
{
if (e is { ChangedButton: MouseButton.Middle, ButtonState: MouseButtonState.Pressed } &&
TabControlParent.CanBeClosedByMiddleButton)
TabControlParent.CanBeClosedByMiddleButton &&
IsMouseOverHeader(e))
{
if (ShowCloseButton || ShowContextMenu)
{
@@ -474,6 +483,11 @@ public class TabItem : System.Windows.Controls.TabItem
return result > maxIndex ? maxIndex : result;
}
private bool IsMouseOverHeader(MouseButtonEventArgs e)
{
return VisualTreeHelper.HitTest(this, e.GetPosition(this)) is not null;
}
public static readonly RoutedEvent ClosingEvent = EventManager.RegisterRoutedEvent("Closing", RoutingStrategy.Bubble, typeof(EventHandler), typeof(TabItem));
public event EventHandler Closing