Themes/MaterialDesignTheme.Badged.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"> <SineEase x:Key="BadgeEase" EasingMode="EaseOut" /> <Storyboard x:Key="BadgeChangedStoryboard"> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"> <EasingDoubleKeyFrame KeyTime="0" Value="1.4" /> <EasingDoubleKeyFrame EasingFunction="{StaticResource BadgeEase}" KeyTime="0:0:0.3" Value="1" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"> <EasingDoubleKeyFrame KeyTime="0" Value="1.4" /> <EasingDoubleKeyFrame EasingFunction="{StaticResource BadgeEase}" KeyTime="0:0:0.3" Value="1" /> </DoubleAnimationUsingKeyFrames> </Storyboard> <Style x:Key="MaterialDesignBadge" TargetType="{x:Type wpf:Badged}"> <Setter Property="BadgeChangedStoryboard" Value="{StaticResource BadgeChangedStoryboard}" /> <Setter Property="BadgeColorZoneMode" Value="PrimaryLight" /> <Setter Property="BadgePlacementMode" Value="TopRight" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="IsTabStop" Value="False" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type wpf:Badged}"> <Grid> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> <Border x:Name="PART_BadgeContainer" MinWidth="18" MinHeight="18" Padding="2" HorizontalAlignment="Left" VerticalAlignment="Top" Background="{TemplateBinding BadgeBackground}" CornerRadius="{TemplateBinding CornerRadius}" RenderTransformOrigin=".5,.5" TextElement.FontSize="11" TextElement.FontWeight="DemiBold" Visibility="{TemplateBinding IsBadgeSet, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> <Border.Resources> <Style TargetType="wpf:PackIcon"> <Setter Property="Height" Value="12" /> <Setter Property="Width" Value="12" /> </Style> </Border.Resources> <Border.RenderTransform> <ScaleTransform ScaleX="1" ScaleY="1" /> </Border.RenderTransform> <ContentControl Margin="1,0,1,0" HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding Badge}" Focusable="False" Foreground="{TemplateBinding BadgeForeground}" IsTabStop="False" /> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="BadgePlacementMode" Value="TopLeft"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Top"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Center" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="TopRight"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Right"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Center" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="BottomRight"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Bottom"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Center" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="BottomLeft"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Left"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Center" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalAlignment" Value="Top" /> <Style.Triggers> <Trigger Property="BadgeColorZoneMode" Value="Standard"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Background}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Inverted"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Background}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryLight"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryMid"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryDark"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="SecondaryMid"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Light"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Badged.LightBackground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Badged.LightForeground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Dark"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Badged.DarkBackground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Badged.DarkForeground}" /> </Trigger> </Style.Triggers> </Style> <Style x:Key="MaterialDesignMiniBadge" TargetType="{x:Type wpf:Badged}"> <Setter Property="BadgeChangedStoryboard" Value="{StaticResource BadgeChangedStoryboard}" /> <Setter Property="BadgeColorZoneMode" Value="PrimaryLight" /> <Setter Property="BadgePlacementMode" Value="TopRight" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="IsTabStop" Value="False" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type wpf:Badged}"> <Grid> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> <Border x:Name="PART_BadgeContainer" Width="6" Height="6" Padding="2" HorizontalAlignment="Left" VerticalAlignment="Top" Background="{TemplateBinding BadgeBackground}" CornerRadius="{TemplateBinding CornerRadius}" RenderTransformOrigin=".5,.5" TextElement.FontSize="11" TextElement.FontWeight="DemiBold" Visibility="{TemplateBinding IsBadgeSet, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> <Border.RenderTransform> <ScaleTransform ScaleX="1" ScaleY="1" /> </Border.RenderTransform> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="BadgePlacementMode" Value="TopLeft"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Top"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Center" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="TopRight"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Top" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Right"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Center" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="BottomRight"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Right" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Bottom"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Center" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="BottomLeft"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Bottom" /> </Trigger> <Trigger Property="BadgePlacementMode" Value="Left"> <Setter TargetName="PART_BadgeContainer" Property="HorizontalAlignment" Value="Left" /> <Setter TargetName="PART_BadgeContainer" Property="VerticalAlignment" Value="Center" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalAlignment" Value="Top" /> <Style.Triggers> <Trigger Property="BadgeColorZoneMode" Value="Standard"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Background}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Inverted"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Background}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryLight"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryMid"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="PrimaryDark"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="SecondaryMid"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Foreground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Light"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Badged.LightBackground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Badged.LightForeground}" /> </Trigger> <Trigger Property="BadgeColorZoneMode" Value="Dark"> <Setter Property="BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Badged.DarkBackground}" /> <Setter Property="BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Badged.DarkForeground}" /> </Trigger> </Style.Triggers> </Style> </ResourceDictionary> |