Skip to content

Commit b110061

Browse files
authored
Fix Enhance Mouseover Visuals for TabControl (#3803)
* Modified the Template of the TabItem -change the Cursor on hover -implement a "hover" effect * added new TabAssist.TabHeaderCursor attached property
1 parent f31fe78 commit b110061

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/MaterialDesignThemes.Wpf/TabAssist.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static void SetHeaderPanelMargin(DependencyObject element, Thickness valu
2727
=> element.SetValue(HeaderPanelMarginProperty, value);
2828

2929
public static Thickness GetHeaderPanelMargin(DependencyObject element)
30-
=> (Thickness) element.GetValue(HeaderPanelMarginProperty);
30+
=> (Thickness)element.GetValue(HeaderPanelMarginProperty);
3131

3232
internal static Visibility GetBindableIsItemsHost(DependencyObject obj)
3333
=> (Visibility)obj.GetValue(BindableIsItemsHostProperty);
@@ -45,4 +45,13 @@ private static void OnBindableIsItemsHostChanged(DependencyObject d, DependencyP
4545
panel.IsItemsHost = (Visibility)e.NewValue == Visibility.Visible;
4646
}
4747
}
48+
49+
public static Cursor GetTabHeaderCursor(DependencyObject obj)
50+
=> (Cursor)obj.GetValue(TabHeaderCursorProperty);
51+
52+
public static void SetTabHeaderCursor(DependencyObject obj, Cursor value)
53+
=> obj.SetValue(TabHeaderCursorProperty, value);
54+
55+
public static readonly DependencyProperty TabHeaderCursorProperty =
56+
DependencyProperty.RegisterAttached("TabHeaderCursor", typeof(Cursor), typeof(TabAssist), new PropertyMetadata(Cursors.Hand));
4857
}

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TabControl.xaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
Duration="0" />
292292
</Storyboard>
293293
</ControlTemplate.Resources>
294-
<Grid x:Name="Root">
294+
<Grid x:Name="Root" Cursor="{Binding Path=(wpf:TabAssist.TabHeaderCursor), RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}">
295295
<!-- This is the Header label ColorZone. -->
296296
<wpf:ColorZone x:Name="ColorZoneHeader"
297297
HorizontalAlignment="Stretch"
@@ -333,6 +333,9 @@
333333
</Border>
334334
</Grid>
335335
<ControlTemplate.Triggers>
336+
<Trigger Property="IsMouseOver" Value="True" SourceName="ColorZoneHeader">
337+
<Setter TargetName="Root" Property="Background" Value="{Binding Foreground, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={x:Static converters:BrushOpacityConverter.Instance}, ConverterParameter=0.16}" />
338+
</Trigger>
336339
<Trigger Property="IsEnabled" Value="False">
337340
<Setter Property="Opacity" Value="0.38" />
338341
</Trigger>

0 commit comments

Comments
 (0)