Skip to content

Commit 50ec9de

Browse files
committed
Improve CustomToggleButtonStyle
1 parent b1e6cfa commit 50ec9de

File tree

1 file changed

+39
-45
lines changed

1 file changed

+39
-45
lines changed

Flow.Launcher/Resources/CustomControlTemplate.xaml

Lines changed: 39 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -416,69 +416,58 @@
416416
</Setter>
417417
</Style>
418418

419-
<!-- Toggle Button -->
420-
<Style x:Key="CustomToggleButtonStyle" TargetType="ToggleButton">
421-
<Setter Property="OverridesDefaultStyle" Value="True" />
419+
<!-- Toggle Button from UI.WPF.Modern to change Padding & Background -->
420+
<Style
421+
x:Key="CustomToggleButtonStyle"
422+
BasedOn="{StaticResource DefaultToggleButtonStyle}"
423+
TargetType="ToggleButton">
422424
<Setter Property="Background" Value="{DynamicResource ButtonBackgroundColor}" />
423-
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForeground}" />
424-
<Setter Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrush}" />
425-
<Setter Property="BorderThickness" Value="{DynamicResource ToggleButtonBorderThemeThickness}" />
426425
<Setter Property="Padding" Value="0" />
427-
<Setter Property="HorizontalAlignment" Value="Left" />
428-
<Setter Property="VerticalAlignment" Value="Center" />
429-
<Setter Property="HorizontalContentAlignment" Value="Center" />
430-
<Setter Property="VerticalContentAlignment" Value="Center" />
431-
<Setter Property="FontFamily" Value="{DynamicResource ContentControlThemeFontFamily}" />
432-
<Setter Property="FontWeight" Value="Normal" />
433-
<Setter Property="FontSize" Value="{DynamicResource ControlContentThemeFontSize}" />
434-
<Setter Property="ui:ControlHelper.CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
435-
<Setter Property="FocusVisualStyle" Value="{DynamicResource {x:Static SystemParameters.FocusVisualStyleKey}}" />
436-
<Setter Property="ui:FocusVisualHelper.UseSystemFocusVisuals" Value="{DynamicResource UseSystemFocusVisuals}" />
437-
<Setter Property="ui:FocusVisualHelper.FocusVisualMargin" Value="-3" />
438-
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="False" />
439426
<Setter Property="Template">
440427
<Setter.Value>
441428
<ControlTemplate TargetType="ToggleButton">
442-
<Border
429+
<ui:ElevationBorder
443430
x:Name="Background"
444431
Background="{TemplateBinding Background}"
432+
BorderBrush="{TemplateBinding BorderBrush}"
433+
BorderThickness="{TemplateBinding BorderThickness}"
445434
CornerRadius="{TemplateBinding ui:ControlHelper.CornerRadius}"
446435
SnapsToDevicePixels="True">
447-
<Border
436+
<ui:ElevationBorder
448437
x:Name="Border"
449438
Padding="{TemplateBinding Padding}"
450-
BorderBrush="{TemplateBinding BorderBrush}"
451-
BorderThickness="{TemplateBinding BorderThickness}"
452439
CornerRadius="{TemplateBinding ui:ControlHelper.CornerRadius}">
453-
<ContentPresenter
440+
<ui:ContentPresenterEx
454441
x:Name="ContentPresenter"
455442
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
456443
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
457444
Focusable="False"
458445
RecognizesAccessKey="True"
459446
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
460-
</Border>
461-
</Border>
447+
</ui:ElevationBorder>
448+
</ui:ElevationBorder>
462449
<ControlTemplate.Triggers>
463450
<!-- PointerOver -->
464451
<MultiTrigger>
465452
<MultiTrigger.Conditions>
466453
<Condition Property="IsChecked" Value="False" />
467454
<Condition Property="IsMouseOver" Value="True" />
468455
</MultiTrigger.Conditions>
456+
<!-- Background changed from ToggleButtonBackgroundPointerOver to ButtonMouseOver -->
469457
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ButtonMouseOver}" />
470-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPointerOver}" />
471-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundPointerOver}" />
458+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPointerOver}" />
459+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundPointerOver}" />
472460
</MultiTrigger>
473461
<!-- Pressed -->
474462
<MultiTrigger>
475463
<MultiTrigger.Conditions>
476464
<Condition Property="IsChecked" Value="False" />
477465
<Condition Property="IsPressed" Value="True" />
478466
</MultiTrigger.Conditions>
467+
<!-- Background changed from ToggleButtonBackgroundPressed to ButtonMousePressed -->
479468
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ButtonMousePressed}" />
480-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPressed}" />
481-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundPressed}" />
469+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushPressed}" />
470+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundPressed}" />
482471
</MultiTrigger>
483472
<!-- Disabled -->
484473
<MultiTrigger>
@@ -487,10 +476,15 @@
487476
<Condition Property="IsEnabled" Value="False" />
488477
</MultiTrigger.Conditions>
489478
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundDisabled}" />
490-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundDisabled}" />
491-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushDisabled}" />
479+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundDisabled}" />
480+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushDisabled}" />
492481
</MultiTrigger>
493482
<!-- Checked -->
483+
<Trigger Property="IsChecked" Value="True">
484+
<Setter TargetName="Background" Property="BorderThickness" Value="0" />
485+
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushChecked}" />
486+
<Setter TargetName="Border" Property="BorderThickness" Value="{Binding BorderThickness, RelativeSource={RelativeSource TemplatedParent}}" />
487+
</Trigger>
494488
<MultiTrigger>
495489
<MultiTrigger.Conditions>
496490
<Condition Property="IsChecked" Value="True" />
@@ -499,8 +493,8 @@
499493
<Condition Property="IsEnabled" Value="True" />
500494
</MultiTrigger.Conditions>
501495
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundChecked}" />
502-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundChecked}" />
503-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushChecked}" />
496+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundChecked}" />
497+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushChecked}" />
504498
</MultiTrigger>
505499
<!-- CheckedPointerOver -->
506500
<MultiTrigger>
@@ -510,16 +504,16 @@
510504
</MultiTrigger.Conditions>
511505
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedPointerOver}" />
512506
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushCheckedPointerOver}" />
513-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPointerOver}" />
507+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPointerOver}" />
514508
</MultiTrigger>
515509
<!-- CheckedPressed -->
516510
<MultiTrigger>
517511
<MultiTrigger.Conditions>
518512
<Condition Property="IsChecked" Value="True" />
519513
<Condition Property="IsPressed" Value="True" />
520514
</MultiTrigger.Conditions>
521-
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedPointerOver}" />
522-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPressed}" />
515+
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedPressed}" />
516+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedPressed}" />
523517
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushCheckedPressed}" />
524518
</MultiTrigger>
525519
<!-- CheckedDisabled -->
@@ -529,7 +523,7 @@
529523
<Condition Property="IsEnabled" Value="False" />
530524
</MultiTrigger.Conditions>
531525
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundCheckedDisabled}" />
532-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedDisabled}" />
526+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundCheckedDisabled}" />
533527
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushCheckedDisabled}" />
534528
</MultiTrigger>
535529
<!-- Indeterminate -->
@@ -541,8 +535,8 @@
541535
<Condition Property="IsEnabled" Value="True" />
542536
</MultiTrigger.Conditions>
543537
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundIndeterminate}" />
544-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminate}" />
545-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminate}" />
538+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminate}" />
539+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminate}" />
546540
</MultiTrigger>
547541
<!-- IndeterminatePointerOver -->
548542
<MultiTrigger>
@@ -551,8 +545,8 @@
551545
<Condition Property="IsMouseOver" Value="True" />
552546
</MultiTrigger.Conditions>
553547
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundIndeterminatePointerOver}" />
554-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminatePointerOver}" />
555-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminatePointerOver}" />
548+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminatePointerOver}" />
549+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminatePointerOver}" />
556550
</MultiTrigger>
557551
<!-- IndeterminatePressed -->
558552
<MultiTrigger>
@@ -561,8 +555,8 @@
561555
<Condition Property="IsPressed" Value="True" />
562556
</MultiTrigger.Conditions>
563557
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundIndeterminatePressed}" />
564-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminatePressed}" />
565-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminatePressed}" />
558+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminatePressed}" />
559+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminatePressed}" />
566560
</MultiTrigger>
567561
<!-- IndeterminateDisabled -->
568562
<MultiTrigger>
@@ -571,8 +565,8 @@
571565
<Condition Property="IsEnabled" Value="False" />
572566
</MultiTrigger.Conditions>
573567
<Setter TargetName="Background" Property="Background" Value="{DynamicResource ToggleButtonBackgroundIndeterminateDisabled}" />
574-
<Setter TargetName="ContentPresenter" Property="TextElement.Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminateDisabled}" />
575-
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminateDisabled}" />
568+
<Setter Property="Foreground" Value="{DynamicResource ToggleButtonForegroundIndeterminateDisabled}" />
569+
<Setter TargetName="Background" Property="BorderBrush" Value="{DynamicResource ToggleButtonBorderBrushIndeterminateDisabled}" />
576570
</MultiTrigger>
577571
</ControlTemplate.Triggers>
578572
</ControlTemplate>

0 commit comments

Comments
 (0)