Themes/MaterialDesignTheme.ToggleButton.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ValidationErrorTemplate.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="FocusVisual"> <Setter Property="Control.Template"> <Setter.Value> <ControlTemplate> <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeDashArray="1 2" StrokeThickness="1" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <wpf:PackIcon x:Key="CheckMarkIcon" Width="24" Height="24" x:Shared="False" FlowDirection="LeftToRight" Kind="Check" /> <Style x:Key="MaterialDesignActionToggleButton" TargetType="{x:Type ToggleButton}"> <Style.Resources> <ResourceDictionary> <Style TargetType="wpf:PackIcon" BasedOn="{StaticResource {x:Type wpf:PackIcon}}"> <Setter Property="Height" Value="20" /> <Setter Property="Width" Value="20" /> </Style> </ResourceDictionary> </Style.Resources> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Cursor" Value="Hand" /> <Setter Property="FontSize" Value="18" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> <Setter Property="Height" Value="32" /> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Grid Effect="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ElevationAssist.Elevation), Converter={x:Static converters:ShadowConverter.Instance}}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="Disabled"> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" To="0.38" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="CheckStates"> <VisualStateGroup.Transitions> <VisualTransition From="*" To="Checked"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="OffScaleTransform" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="1" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="OnScaleTransform" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.2" Value="1" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition From="Checked" To="Unchecked"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="OnScaleTransform" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="1" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="OffScaleTransform" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.2" Value="1" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState x:Name="Checked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="OffScaleTransform" Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="OnScaleTransform" Storyboard.TargetProperty="ScaleX" To="1" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unchecked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="OffScaleTransform" Storyboard.TargetProperty="ScaleX" To="1" Duration="0" /> <DoubleAnimation Storyboard.TargetName="OnScaleTransform" Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Indeterminate"> <Storyboard> <DoubleAnimation Storyboard.TargetName="IndeterminateCheck" Storyboard.TargetProperty="(UIElement.Opacity)" To="1" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid x:Name="OffGrid" Background="{TemplateBinding Background}" RenderTransformOrigin=".5,.5"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" FlowDirection="LeftToRight" /> <Grid.Clip> <EllipseGeometry RadiusX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Width, Converter={x:Static converters:MathConverter.DivideInstance}, ConverterParameter=2.0}" RadiusY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={x:Static converters:MathConverter.DivideInstance}, ConverterParameter=2.0}"> <EllipseGeometry.Center> <MultiBinding Converter="{x:Static converters:PointValueConverter.Instance}"> <Binding Converter="{x:Static converters:MathConverter.DivideInstance}" ConverterParameter="2.0" Path="Width" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Converter="{x:Static converters:MathConverter.DivideInstance}" ConverterParameter="2.0" Path="Height" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </EllipseGeometry.Center> </EllipseGeometry> </Grid.Clip> <Grid.RenderTransform> <ScaleTransform x:Name="OffScaleTransform" ScaleX="1" ScaleY="1" /> </Grid.RenderTransform> </Grid> <Grid x:Name="OnGrid" Background="{TemplateBinding Background}" RenderTransformOrigin=".5,.5"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.OnContent)}" ContentTemplate="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.OnContentTemplate)}" FlowDirection="LeftToRight" /> <Grid.Clip> <EllipseGeometry RadiusX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Width, Converter={x:Static converters:MathConverter.DivideInstance}, ConverterParameter=2.0}" RadiusY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={x:Static converters:MathConverter.DivideInstance}, ConverterParameter=2.0}"> <EllipseGeometry.Center> <MultiBinding Converter="{x:Static converters:PointValueConverter.Instance}"> <Binding Converter="{x:Static converters:MathConverter.DivideInstance}" ConverterParameter="2.0" Path="Width" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Converter="{x:Static converters:MathConverter.DivideInstance}" ConverterParameter="2.0" Path="Height" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </EllipseGeometry.Center> </EllipseGeometry> </Grid.Clip> <Grid.RenderTransform> <ScaleTransform x:Name="OnScaleTransform" ScaleX="0" ScaleY="1" /> </Grid.RenderTransform> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Width" Value="32" /> <Setter Property="wpf:ElevationAssist.Elevation" Value="Dp0" /> <Setter Property="wpf:ToggleButtonAssist.OnContent" Value="{StaticResource CheckMarkIcon}" /> </Style> <Style x:Key="MaterialDesignActionLightToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignActionToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light.Foreground}" /> </Style> <Style x:Key="MaterialDesignActionDarkToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignActionToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark.Foreground}" /> </Style> <Style x:Key="MaterialDesignActionSecondaryToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignActionToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Foreground}" /> </Style> <Style x:Key="MaterialDesignFlatToggleButton" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToggleButton.Background}" /> <Setter Property="FontSize" Value="18" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.ToggleButton.Foreground}" /> <Setter Property="Height" Value="40" /> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="Padding" Value="0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" ClipToBounds="True"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="Disabled"> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" To="0.38" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="CheckStates"> <VisualStateGroup.Transitions> <VisualTransition From="*" To="Checked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="1.0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleY" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="1.0" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition From="Checked" To="Unchecked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleX" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleY" Duration="0:0:0.2"> <LinearDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" /> <LinearDoubleKeyFrame KeyTime="0:0:0.1" Value="0" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState x:Name="Checked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleX" To="1.0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleY" To="1.0" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unchecked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="CheckedEllipseScale" Storyboard.TargetProperty="ScaleY" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Ellipse x:Name="HoverEllipse" Fill="Transparent" Stroke="Transparent" StrokeThickness="1" /> <Ellipse x:Name="CheckedEllipse" Fill="{TemplateBinding Background}" RenderTransformOrigin="0.5, 0.5"> <Ellipse.RenderTransform> <ScaleTransform x:Name="CheckedEllipseScale" CenterX="0.5" CenterY="0.5" ScaleX="1.0" ScaleY="1.0" /> </Ellipse.RenderTransform> </Ellipse> <ContentPresenter x:Name="contentPresenter" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="true"> <Setter TargetName="HoverEllipse" Property="Stroke" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}" /> </Trigger> <!-- TODO <Trigger Property="IsFocused" Value="True"> <Setter Property="BorderBrush" TargetName="normal" Value="{Binding (Custom:ControlsHelper.FocusBorderBrush), RelativeSource={RelativeSource TemplatedParent}}"/> </Trigger> --> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Width" Value="40" /> </Style> <Style x:Key="MaterialDesignFlatPrimaryToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignFlatToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> </Style> <Style x:Key="MaterialDesignSwitchToggleButton" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> <Setter Property="Padding" Value="0,1,0,0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <ControlTemplate.Resources> <SineEase x:Key="RippleEasingFunction" EasingMode="EaseInOut" /> <Storyboard x:Key="ShowRipple"> <DoubleAnimation EasingFunction="{StaticResource RippleEasingFunction}" Storyboard.TargetName="RippleThumb" Storyboard.TargetProperty="Opacity" To="0.26" Duration="0" /> <DoubleAnimation EasingFunction="{StaticResource RippleEasingFunction}" Storyboard.TargetName="RippleThumb" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)" From="1" To="2.5" Duration="0:0:0.2" /> <DoubleAnimation EasingFunction="{StaticResource RippleEasingFunction}" Storyboard.TargetName="RippleThumb" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" From="1" To="2.5" Duration="0:0:0.2" /> </Storyboard> <Storyboard x:Key="HideRipple"> <DoubleAnimation EasingFunction="{StaticResource RippleEasingFunction}" Storyboard.TargetName="RippleThumb" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.3" /> </Storyboard> </ControlTemplate.Resources> <Viewbox Width="{TemplateBinding Width}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CheckStates"> <VisualStateGroup.Transitions> <VisualTransition From="*" To="Checked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ThumbHolder" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0" Value="0" /> <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="23.5"> <EasingDoubleKeyFrame.EasingFunction> <QuadraticEase EasingMode="EaseOut" /> </EasingDoubleKeyFrame.EasingFunction> </EasingDoubleKeyFrame> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition From="Checked" To="Unchecked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ThumbHolder" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0" Value="23.5" /> <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0"> <EasingDoubleKeyFrame.EasingFunction> <QuadraticEase EasingMode="EaseOut" /> </EasingDoubleKeyFrame.EasingFunction> </EasingDoubleKeyFrame> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState x:Name="Checked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="ThumbHolder" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="23.5" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unchecked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="ThumbHolder" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid> <Rectangle x:Name="Track" Width="40" Height="15" Margin="4.211,5,4.211,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.SwitchTrackOffBackground)}" Opacity="0.26" RadiusX="7.5" RadiusY="7.5" Stroke="{x:Null}" /> <Grid x:Name="ThumbHolder" HorizontalAlignment="Left" VerticalAlignment="Top"> <Ellipse x:Name="RippleThumb" Width="25" Height="25" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{DynamicResource MaterialDesign.Brush.Primary.Light}" IsHitTestVisible="False" Opacity="0.26" RenderTransformOrigin="0.5,0.5"> <Ellipse.RenderTransform> <ScaleTransform ScaleX="1" ScaleY="1" /> </Ellipse.RenderTransform> </Ellipse> <AdornerDecorator CacheMode="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:ShadowAssist.CacheMode)}"> <Ellipse x:Name="Thumb" Width="25" Height="25" Margin="0,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Effect="{DynamicResource MaterialDesignShadowDepth1}" Fill="#FFFAFAFA" RenderTransformOrigin="0.5,0.5" Stroke="{x:Null}" /> </AdornerDecorator> <ContentPresenter x:Name="ContentPresenter" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" FlowDirection="LeftToRight" /> <Grid.RenderTransform> <TranslateTransform X="0" Y="0" /> </Grid.RenderTransform> </Grid> </Grid> </Viewbox> <ControlTemplate.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> <Setter TargetName="Thumb" Property="Fill" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}" /> <Setter TargetName="Track" Property="Fill" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.SwitchTrackOnBackground)}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsChecked" Value="True" /> <Condition Property="wpf:ToggleButtonAssist.HasOnContent" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="ContentPresenter" Property="Content" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.OnContent)}" /> <Setter TargetName="ContentPresenter" Property="ContentTemplate" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.OnContentTemplate)}" /> </MultiTrigger> <Trigger Property="IsChecked" Value="False"> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <!-- Need to set Foreground to Background here instead of hardcoded PrimaryHueMidBrush --> </Trigger> <Trigger Property="Button.IsDefaulted" Value="true" /> <Trigger Property="IsMouseOver" Value="true" /> <Trigger Property="IsPressed" Value="true"> <Trigger.EnterActions> <BeginStoryboard Storyboard="{StaticResource ShowRipple}" /> </Trigger.EnterActions> <Trigger.ExitActions> <BeginStoryboard Storyboard="{StaticResource HideRipple}" /> </Trigger.ExitActions> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter TargetName="Thumb" Property="Fill" Value="#BDBDBD" /> <Setter TargetName="Track" Property="Fill"> <Setter.Value> <SolidColorBrush Opacity=".12" Color="Black" /> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Validation.ErrorTemplate" Value="{StaticResource MaterialDesignValidationErrorTemplate}" /> <Setter Property="Width" Value="34" /> <Setter Property="wpf:ToggleButtonAssist.SwitchTrackOffBackground" Value="Black" /> <Setter Property="wpf:ToggleButtonAssist.SwitchTrackOnBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> </Style> <Style x:Key="MaterialDesignSwitchLightToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignSwitchToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> </Style> <Style x:Key="MaterialDesignSwitchDarkToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignSwitchToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> </Style> <Style x:Key="MaterialDesignSwitchSecondaryToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignSwitchToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> </Style> <Style x:Key="MaterialDesignHamburgerToggleButton" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="Height" Value="37" /> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="Padding" Value="1" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Border Background="{TemplateBinding Property=Background}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState Name="Normal" /> <VisualState Name="Disabled"> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" To="0.38" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="CheckStates"> <VisualStateGroup.Transitions> <VisualTransition From="*" To="Checked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="45" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.581" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="4.875" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1.875" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-45" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.581" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="4.832" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-2.082" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.889" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-1" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="canvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0" Value="0" /> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-180" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition From="Checked" To="Unchecked"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="canvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState x:Name="Checked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="45" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="0.581" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="4.875" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" To="1.875" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="-45" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="0.581" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="4.832" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" To="-2.082" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="0.889" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="-1" Duration="0" /> <DoubleAnimation Storyboard.TargetName="canvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="-180" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unchecked"> <Storyboard> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="1" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="1" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" To="1" Duration="0" /> <DoubleAnimation Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetName="canvas" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Viewbox> <Canvas x:Name="canvas" Width="24" Height="24" RenderTransformOrigin="0.5,0.5"> <Canvas.RenderTransform> <TransformGroup> <ScaleTransform /> <SkewTransform /> <RotateTransform /> <TranslateTransform /> </TransformGroup> </Canvas.RenderTransform> <Rectangle x:Name="rectangle" Canvas.Left="3" Canvas.Top="6" Width="18" Height="2" Fill="{TemplateBinding Foreground}" RadiusX="0" RadiusY="0" RenderTransformOrigin="0.5,0.5"> <Rectangle.RenderTransform> <TransformGroup> <ScaleTransform /> <SkewTransform /> <RotateTransform /> <TranslateTransform /> </TransformGroup> </Rectangle.RenderTransform> </Rectangle> <Rectangle x:Name="rectangle1" Canvas.Left="3" Canvas.Top="11" Width="18" Height="2" Fill="{TemplateBinding Foreground}" RadiusX="0" RadiusY="0" RenderTransformOrigin="0.5,0.5"> <Rectangle.RenderTransform> <TransformGroup> <ScaleTransform /> <SkewTransform /> <RotateTransform /> <TranslateTransform /> </TransformGroup> </Rectangle.RenderTransform> </Rectangle> <Rectangle x:Name="rectangle2" Canvas.Left="3" Canvas.Top="16" Width="18" Height="2" Fill="{TemplateBinding Foreground}" RadiusX="0" RadiusY="0" RenderTransformOrigin="0.5,0.5"> <Rectangle.RenderTransform> <TransformGroup> <ScaleTransform /> <SkewTransform /> <RotateTransform /> <TranslateTransform /> </TransformGroup> </Rectangle.RenderTransform> </Rectangle> </Canvas> </Viewbox> </Border> <ControlTemplate.Triggers> <Trigger Property="Button.IsDefaulted" Value="true" /> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Width" Value="37" /> </Style> </ResourceDictionary> |