Skip to content

Commit c9f8087

Browse files
committed
added hovering halo for checkbox
1 parent 46e5193 commit c9f8087

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

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

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
<Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary}" />
6868
<Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" />
6969
<Setter Property="BorderThickness" Value="1" />
70+
<Setter Property="Cursor" Value="Hand" />
7071
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" />
7172
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground), FallbackValue=Black}" />
7273
<Setter Property="Template">
@@ -103,11 +104,12 @@
103104
<ColumnDefinition Width="Auto" />
104105
<ColumnDefinition Width="*" />
105106
</Grid.ColumnDefinitions>
106-
<Viewbox Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize)}"
107+
<Viewbox x:Name="IconHost"
108+
Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize)}"
107109
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize)}"
108110
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
109111
FlowDirection="LeftToRight">
110-
<Canvas Width="24" Height="24">
112+
<Canvas Width="24" Height="24" Background="Transparent">
111113
<Path x:Name="Graphic"
112114
Data="M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"
113115
Fill="{DynamicResource MaterialDesign.Brush.ForegroundLight}" />
@@ -131,6 +133,19 @@
131133
</Ellipse>
132134
</Canvas>
133135
</Viewbox>
136+
137+
<!-- halo shown when hovering -->
138+
<Ellipse x:Name="halo"
139+
Grid.Column="0"
140+
HorizontalAlignment="Center"
141+
VerticalAlignment="Center"
142+
Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter=1.6}"
143+
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter=1.6}"
144+
Fill="{TemplateBinding Foreground}"
145+
Opacity="0"
146+
IsHitTestVisible="False"
147+
RenderTransformOrigin="0.5,0.5" />
148+
134149
<ContentPresenter x:Name="contentPresenter"
135150
Grid.Column="1"
136151
Margin="{TemplateBinding Padding}"
@@ -152,7 +167,7 @@
152167
</MultiDataTrigger>
153168
<Trigger Property="HasContent" Value="true">
154169
<Setter Property="FocusVisualStyle" Value="{StaticResource OptionMarkFocusVisual}" />
155-
<Setter Property="Padding" Value="4,2,0,0" />
170+
<Setter Property="Padding" Value="0,2,0,0" />
156171
</Trigger>
157172
<Trigger Property="IsPressed" Value="true" />
158173
<Trigger Property="IsChecked" Value="true">
@@ -171,6 +186,9 @@
171186
<Setter TargetName="Graphic" Property="Fill" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" />
172187
<Setter TargetName="contentPresenter" Property="Control.Foreground" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" />
173188
</Trigger>
189+
<Trigger SourceName="IconHost" Property="IsMouseOver" Value="True">
190+
<Setter TargetName="halo" Property="Opacity" Value="0.15" />
191+
</Trigger>
174192
</ControlTemplate.Triggers>
175193
</ControlTemplate>
176194
</Setter.Value>
@@ -242,7 +260,7 @@
242260
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:CheckBoxAssist.CheckBoxSize)}"
243261
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
244262
FlowDirection="LeftToRight">
245-
<Canvas Width="24" Height="24">
263+
<Canvas Width="24" Height="24" Background="Transparent">
246264
<Path x:Name="Graphic"
247265
Data="M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"
248266
Fill="{TemplateBinding Foreground}" />

0 commit comments

Comments
 (0)