Skip to content

Commit 4111299

Browse files
authored
Merge pull request #4053 from MaterialDesignInXAML/keboo/add-materialdesigntoolbartogglebutton-st
Add MaterialDesign toolbar toggle button style
2 parents b081885 + bf9fbf5 commit 4111299

4 files changed

Lines changed: 67 additions & 5 deletions

File tree

src/MainDemo.Wpf/MenusAndToolBars.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,9 @@
341341

342342
<Separator />
343343

344-
<ToggleButton />
344+
<ToggleButton Content="{materialDesign:PackIcon Kind=FormatStrikethroughVariant}"
345+
IsChecked="True"
346+
ToolTip="MaterialDesignToolBarToggleButton" />
345347
</ToolBar>
346348
</ToolBarTray>
347349
</smtx:XamlDisplay>

src/MaterialDesign3.Demo.Wpf/MenusAndToolBars.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,9 @@
341341

342342
<Separator />
343343

344-
<ToggleButton />
344+
<ToggleButton Content="{materialDesign:PackIcon Kind=FormatStrikethroughVariant}"
345+
IsChecked="True"
346+
ToolTip="MaterialDesignToolBarToggleButton" />
345347
</ToolBar>
346348
</ToolBarTray>
347349
</smtx:XamlDisplay>

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

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,11 +312,68 @@
312312
BasedOn="{StaticResource MaterialDesignTextBox}">
313313
<Setter Property="Margin" Value="8,0,8,0" />
314314
</Style>
315+
<Style x:Key="MaterialDesignToolBarToggleButton" TargetType="{x:Type ToggleButton}">
316+
<Setter Property="Background" Value="Transparent" />
317+
<Setter Property="BorderBrush" Value="Transparent" />
318+
<Setter Property="BorderThickness" Value="0" />
319+
<Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" />
320+
<Setter Property="HorizontalContentAlignment" Value="Center" />
321+
<Setter Property="Margin" Value="0" />
322+
<Setter Property="MinWidth" Value="54" />
323+
<Setter Property="Padding" Value="16" />
324+
<Setter Property="SnapsToDevicePixels" Value="True" />
325+
<Setter Property="Template">
326+
<Setter.Value>
327+
<ControlTemplate TargetType="{x:Type ToggleButton}">
328+
<Border Margin="{TemplateBinding Margin}"
329+
Background="{TemplateBinding Background}"
330+
BorderBrush="{TemplateBinding BorderBrush}"
331+
BorderThickness="{TemplateBinding BorderThickness}"
332+
ClipToBounds="{TemplateBinding ClipToBounds}"
333+
CornerRadius="2">
334+
<Grid>
335+
<Border x:Name="MouseOverBorder"
336+
Background="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}"
337+
Opacity="0" />
338+
<Border x:Name="SelectedBackgroundBorder"
339+
Background="{DynamicResource MaterialDesign.Brush.ListBoxItem.Selected}"
340+
Opacity="0" />
341+
<wpf:Ripple x:Name="Ripple"
342+
Padding="{TemplateBinding Padding}"
343+
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
344+
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
345+
Content="{TemplateBinding Content}"
346+
ContentTemplate="{TemplateBinding ContentTemplate}"
347+
Feedback="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}"
348+
Focusable="False"
349+
Opacity=".56"
350+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
351+
</Grid>
352+
</Border>
353+
<ControlTemplate.Triggers>
354+
<Trigger Property="IsChecked" Value="true">
355+
<Setter TargetName="SelectedBackgroundBorder" Property="Opacity" Value="1" />
356+
<Setter TargetName="Ripple" Property="Opacity" Value=".92" />
357+
</Trigger>
358+
<Trigger Property="IsMouseOver" Value="true">
359+
<Setter TargetName="MouseOverBorder" Property="Opacity" Value=".03" />
360+
</Trigger>
361+
<Trigger Property="IsKeyboardFocused" Value="true">
362+
<Setter TargetName="MouseOverBorder" Property="Opacity" Value=".03" />
363+
</Trigger>
364+
<Trigger Property="IsEnabled" Value="false">
365+
<Setter Property="Opacity" Value=".56" />
366+
</Trigger>
367+
</ControlTemplate.Triggers>
368+
</ControlTemplate>
369+
</Setter.Value>
370+
</Setter>
371+
<Setter Property="TextBlock.FontWeight" Value="DemiBold" />
372+
<Setter Property="VerticalContentAlignment" Value="Center" />
373+
</Style>
315374
<Style x:Key="{x:Static ToolBar.ToggleButtonStyleKey}"
316375
TargetType="{x:Type ToggleButton}"
317-
BasedOn="{StaticResource MaterialDesignSwitchToggleButton}">
318-
<Setter Property="Margin" Value="8,0,8,0" />
319-
</Style>
376+
BasedOn="{StaticResource MaterialDesignToolBarToggleButton}" />
320377

321378
<Style x:Key="{x:Static ToolBar.ButtonStyleKey}" TargetType="Button">
322379
<Setter Property="BorderThickness" Value="1" />

tests/MaterialDesignThemes.UITests/WPF/ToolBars/ToolBarTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ public async Task ToolBar_OverflowButton_InheritsCustomBackground()
5555

5656
recorder.Success();
5757
}
58+
5859
}

0 commit comments

Comments
 (0)