Themes/MaterialDesignTheme.Flipper.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf">
 
  <Style TargetType="{x:Type wpf:Flipper}">
    <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Card.Background}" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type wpf:Flipper}">
          <Grid>
            <VisualStateManager.VisualStateGroups>
              <VisualStateGroup x:Name="FlipStates">
                <VisualStateGroup.Transitions>
                  <VisualTransition From="Unflipped" To="Flipped">
                    <Storyboard FillBehavior="HoldEnd">
                      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FrontContentTransform"
                                                     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>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_FrontContent" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" />
                      </ObjectAnimationUsingKeyFrames>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_BackContent" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="{x:Static Visibility.Visible}" />
                      </ObjectAnimationUsingKeyFrames>
                      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackContentTransform"
                                                     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="Flipped" To="Unflipped">
                    <Storyboard FillBehavior="HoldEnd">
                      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackContentTransform"
                                                     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>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_FrontContent" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="{x:Static Visibility.Visible}" />
                      </ObjectAnimationUsingKeyFrames>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_BackContent" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Collapsed}" />
                      </ObjectAnimationUsingKeyFrames>
                      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FrontContentTransform"
                                                     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="Unflipped">
                  <Storyboard Duration="0">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FrontContentTransform" Storyboard.TargetProperty="ScaleX">
                      <DiscreteDoubleKeyFrame KeyTime="0" Value="1" />
                    </DoubleAnimationUsingKeyFrames>
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackContentTransform" Storyboard.TargetProperty="ScaleX">
                      <DiscreteDoubleKeyFrame KeyTime="0" Value="0" />
                    </DoubleAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_FrontContent" Storyboard.TargetProperty="Visibility">
                      <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" />
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_BackContent" Storyboard.TargetProperty="Visibility">
                      <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}" />
                    </ObjectAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
                <VisualState x:Name="Flipped">
                  <Storyboard Duration="0">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FrontContentTransform" Storyboard.TargetProperty="ScaleX">
                      <DiscreteDoubleKeyFrame KeyTime="0" Value="0" />
                    </DoubleAnimationUsingKeyFrames>
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackContentTransform" Storyboard.TargetProperty="ScaleX">
                      <DiscreteDoubleKeyFrame KeyTime="0" Value="1" />
                    </DoubleAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_FrontContent" Storyboard.TargetProperty="Visibility">
                      <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}" />
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_BackContent" Storyboard.TargetProperty="Visibility">
                      <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}" />
                    </ObjectAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
              </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <wpf:Card x:Name="PART_FrontContent"
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                      wpf:ElevationAssist.Elevation="{TemplateBinding wpf:ElevationAssist.Elevation}"
                      Background="{TemplateBinding Background}"
                      BorderBrush="{TemplateBinding BorderBrush}"
                      BorderThickness="{TemplateBinding BorderThickness}"
                      RenderTransformOrigin="0.5,0.5"
                      Style="{TemplateBinding wpf:FlipperAssist.CardStyle}"
                      UniformCornerRadius="{TemplateBinding wpf:FlipperAssist.UniformCornerRadius}">
              <wpf:Card.RenderTransform>
                <ScaleTransform x:Name="FrontContentTransform" ScaleX="1" />
              </wpf:Card.RenderTransform>
              <ContentPresenter Margin="{TemplateBinding Padding}"
                                Content="{TemplateBinding FrontContent}"
                                ContentStringFormat="{TemplateBinding FrontContentStringFormat}"
                                ContentTemplate="{TemplateBinding FrontContentTemplate}"
                                ContentTemplateSelector="{TemplateBinding FrontContentTemplateSelector}" />
            </wpf:Card>
 
            <wpf:Card x:Name="PART_BackContent"
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                      wpf:ElevationAssist.Elevation="{TemplateBinding wpf:ElevationAssist.Elevation}"
                      Background="{TemplateBinding Background}"
                      BorderBrush="{TemplateBinding BorderBrush}"
                      BorderThickness="{TemplateBinding BorderThickness}"
                      RenderTransformOrigin="0.5,0.5"
                      Style="{TemplateBinding wpf:FlipperAssist.CardStyle}"
                      UniformCornerRadius="{TemplateBinding wpf:FlipperAssist.UniformCornerRadius}">
              <ContentPresenter Margin="{TemplateBinding Padding}"
                                Content="{TemplateBinding BackContent}"
                                ContentStringFormat="{TemplateBinding BackContentStringFormat}"
                                ContentTemplate="{TemplateBinding BackContentTemplate}"
                                ContentTemplateSelector="{TemplateBinding BackContentTemplateSelector}" />
              <wpf:Card.RenderTransform>
                <ScaleTransform x:Name="BackContentTransform" ScaleX="0" />
              </wpf:Card.RenderTransform>
            </wpf:Card>
          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Setter Property="wpf:ElevationAssist.Elevation" Value="Dp1" />
  </Style>
 
 
</ResourceDictionary>