Themes/MaterialDesignTheme.Chip.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">
 
  <!-- not happy with where the tool tip is going right now -->
  <!--
    <Style x:Key="MaterialDesignChipToolTip" TargetType="ToolTip">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <wpf:Card Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
                              FontSize="15"
                              FontWeight="Regular"
                              Padding="0 8 0 8"
                              RenderOptions.ClearTypeHint="Enabled"
                              wpf:ShadowAssist.ShadowDepth="Depth3"
                              Margin="8">
                        <Grid Margin="16 8 16 8">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>
 
                            <Border>
                                <Border.Background>
                                    <VisualBrush Visual="{Binding ElementName=PART_MonthView}" Stretch="UniformToFill"/>
                                </Border.Background>
                                <Border.RenderTransform>
                                    <TranslateTransform X="0"/>
                                </Border.RenderTransform>
                            </Border>
 
                            <ContentControl Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:Chip}, Path=Icon}"
                                            x:Name="IconControl"
                                            Background="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:Chip}, Path=IconBackground}"
                                            Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:Chip}, Path=IconForeground}"
                                            FontSize="17"
                                            FontWeight="Regular"
                                            Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:Chip}, Path=Icon, Converter={x:Static converters:NullableToVisibilityConverter.CollapsedInstance}}"
                                            VerticalAlignment="Center"
                                            VerticalContentAlignment="Center"
                                            HorizontalContentAlignment="Center"
                                            Height="32" Width="32"
                                            Margin="0 0 8 0">
                                <ContentControl.Clip>
                                    <EllipseGeometry RadiusX="16" RadiusY="16" Center="16,16" />
                                </ContentControl.Clip>
                                <ContentControl.Template>
                                    <ControlTemplate TargetType="ContentControl">
                                        <Border Background="{TemplateBinding Background}">
                                            <ContentPresenter Content="{TemplateBinding Content}"
                                                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                                        </Border>
                                    </ControlTemplate>
                                </ContentControl.Template>
                            </ContentControl>
                            <ContentControl Grid.Column="1" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:Chip}, Path=Content}"
                                            FontSize="13" />
                            <ContentControl Grid.Column="1" Grid.Row="1" Content="{TemplateBinding Content}"
                                            FontSize="11"/>
                        </Grid>
                    </wpf:Card>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
  -->
 
  <Style TargetType="{x:Type wpf:Chip}">
    <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Chip.Background}" />
    <Setter Property="Cursor" Value="Hand" />
    <Setter Property="FontSize" Value="13" />
    <Setter Property="Height" Value="32" />
    <Setter Property="HorizontalAlignment" Value="Left" />
    <Setter Property="IconBackground" Value="{DynamicResource MaterialDesign.Brush.Primary}" />
    <Setter Property="IconForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" />
    <Setter Property="Margin" Value="4" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type wpf:Chip}">
          <Grid>
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="*" />
              <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Border Grid.ColumnSpan="3"
                    Background="{TemplateBinding Background}"
                    CornerRadius="16" />
            <ContentControl x:Name="IconControl"
                            Width="32"
                            Height="32"
                            VerticalAlignment="Center"
                            HorizontalContentAlignment="Center"
                            VerticalContentAlignment="Center"
                            Background="{TemplateBinding IconBackground}"
                            Content="{TemplateBinding Icon}"
                            FontSize="17"
                            FontWeight="Regular"
                            Foreground="{TemplateBinding IconForeground}"
                            IsTabStop="False"
                            Visibility="{TemplateBinding Icon, Converter={x:Static converters:NullableToVisibilityConverter.CollapsedInstance}}">
              <ContentControl.Clip>
                <EllipseGeometry Center="16,16"
                                 RadiusX="16"
                                 RadiusY="16" />
              </ContentControl.Clip>
              <ContentControl.Template>
                <ControlTemplate TargetType="ContentControl">
                  <Border Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      Content="{TemplateBinding Content}" />
                  </Border>
                </ControlTemplate>
              </ContentControl.Template>
            </ContentControl>
            <ContentControl x:Name="TextBlock"
                            Grid.Column="1"
                            Margin="8,0,12,0"
                            VerticalAlignment="Center"
                            Content="{TemplateBinding Content}"
                            ContentStringFormat="{TemplateBinding ContentStringFormat}"
                            ContentTemplate="{TemplateBinding ContentTemplate}"
                            ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
                            IsTabStop="False" />
            <Button x:Name="PART_DeleteButton"
                    Grid.Column="2"
                    Width="16"
                    Height="16"
                    Margin="-6,0,8,0"
                    VerticalAlignment="Center"
                    ToolTip="{TemplateBinding DeleteToolTip}"
                    Visibility="{TemplateBinding IsDeletable, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}">
              <Button.Template>
                <ControlTemplate>
                  <Grid>
                    <Ellipse x:Name="Bg"
                             Fill="#FFA6A6A6"
                             Stroke="#FF009587"
                             StrokeThickness="0" />
                    <wpf:PackIcon Width="12"
                                  Height="12"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  Kind="Close" />
                  </Grid>
                  <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                      <Setter TargetName="Bg" Property="StrokeThickness" Value="1" />
                    </Trigger>
                  </ControlTemplate.Triggers>
                </ControlTemplate>
              </Button.Template>
            </Button>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger SourceName="IconControl" Property="Visibility" Value="Collapsed">
              <Setter TargetName="TextBlock" Property="Margin" Value="12,0,12,0" />
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
 
  <Style x:Key="MaterialDesignOutlineChip" TargetType="{x:Type wpf:Chip}">
    <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ForegroundLight}" />
    <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Chip.OutlineBorder}" />
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type wpf:Chip}">
          <Grid>
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="Auto" />
              <ColumnDefinition Width="*" />
              <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <VisualStateManager.VisualStateGroups>
              <VisualStateGroup Name="CommonStates">
                <VisualStateGroup.Transitions>
                  <VisualTransition GeneratedDuration="0:0:0.3" To="Normal">
                    <VisualTransition.GeneratedEasingFunction>
                      <CircleEase EasingMode="EaseOut" />
                    </VisualTransition.GeneratedEasingFunction>
                  </VisualTransition>
                </VisualStateGroup.Transitions>
                <VisualState Name="Normal" />
                <VisualState Name="MouseOver">
                  <Storyboard>
                    <DoubleAnimation Storyboard.TargetName="MouseOverBorder"
                                     Storyboard.TargetProperty="Opacity"
                                     To="0.1"
                                     Duration="0" />
                  </Storyboard>
                </VisualState>
                <VisualState Name="Disabled" />
              </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <Border x:Name="Border"
                    Grid.ColumnSpan="3"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}"
                    CornerRadius="16" />
            <Border x:Name="MouseOverBorder"
                    Grid.Column="0"
                    Grid.ColumnSpan="2"
                    Background="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}"
                    CornerRadius="16"
                    Opacity="0" />
            <ContentControl x:Name="IconControl"
                            Width="32"
                            Height="32"
                            VerticalAlignment="Center"
                            HorizontalContentAlignment="Center"
                            VerticalContentAlignment="Center"
                            Background="{TemplateBinding IconBackground}"
                            Content="{TemplateBinding Icon}"
                            FontSize="17"
                            FontWeight="Regular"
                            Foreground="{TemplateBinding IconForeground}"
                            IsTabStop="False"
                            Visibility="{TemplateBinding Icon, Converter={x:Static converters:NullableToVisibilityConverter.CollapsedInstance}}">
              <ContentControl.Clip>
                <EllipseGeometry Center="16,16"
                                 RadiusX="16"
                                 RadiusY="16" />
              </ContentControl.Clip>
              <ContentControl.Template>
                <ControlTemplate TargetType="ContentControl">
                  <Border Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      Content="{TemplateBinding Content}" />
                  </Border>
                </ControlTemplate>
              </ContentControl.Template>
            </ContentControl>
            <ContentControl x:Name="TextBlock"
                            Grid.Column="1"
                            Margin="8,0,12,0"
                            VerticalAlignment="Center"
                            Content="{TemplateBinding Content}"
                            ContentStringFormat="{TemplateBinding ContentStringFormat}"
                            ContentTemplate="{TemplateBinding ContentTemplate}"
                            ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
                            IsTabStop="False" />
            <Button x:Name="PART_DeleteButton"
                    Grid.Column="2"
                    Width="16"
                    Height="16"
                    Margin="-6,0,8,0"
                    VerticalAlignment="Center"
                    ToolTip="{TemplateBinding DeleteToolTip}"
                    Visibility="{TemplateBinding IsDeletable, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}">
              <Button.Template>
                <ControlTemplate>
                  <Grid>
                    <Ellipse x:Name="Bg"
                             Fill="#FFA6A6A6"
                             Stroke="#FF009587"
                             StrokeThickness="0" />
                    <wpf:PackIcon Width="12"
                                  Height="12"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  Kind="Close" />
                  </Grid>
                  <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                      <Setter TargetName="Bg" Property="StrokeThickness" Value="1" />
                    </Trigger>
                  </ControlTemplate.Triggers>
                </ControlTemplate>
              </Button.Template>
            </Button>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger SourceName="IconControl" Property="Visibility" Value="Collapsed">
              <Setter TargetName="TextBlock" Property="Margin" Value="12,0,12,0" />
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</ResourceDictionary>