Как использовать несколько анимаций для Resource?

У меня есть несколько анимаций для Border. Для каждого Border нужно использовать много анимаций, что существенно увеличивает код. Есть идея в том, чтобы добавить все анимации в Window.Resource и дальше добавлять в Style для каждого Border, но через Style можно добавить лишь одну анимацию. Как можно избавиться от этой проблемы?

Например, код 2 анимаций:

<!--Анимация Профиля-->
<Style x:Key="ProfileAnimation" TargetType="{x:Type Border}">
    <Style.Triggers>
        <EventTrigger RoutedEvent="MouseLeftButtonDown">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="OuterProfileGrid"
                             Storyboard.TargetProperty="Opacity"
                             From="{Binding ElementName=OuterProfileGrid, Path=ActualOpacity}" To="0" Duration="0:0:0:0.3">
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterUpperBorderProfile"
                             Storyboard.TargetProperty="Width"
                             From="{Binding ElementName=OuterUpperBorderProfile, Path=ActualWidth}" To="130" Duration="0:0:0:0.3">
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterUpperBorderProfile"
                             Storyboard.TargetProperty="Height"
                             From="{Binding ElementName=OuterUpperBorderProfile, Path=ActualHeight}" To="35" Duration="0:0:0:0.3" >
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterLowerBorderProfile"
                             Storyboard.TargetProperty="Width"
                             From="{Binding ElementName=OuterLowerBorderProfile, Path=ActualWidth}" To="130" Duration="0:0:0:0.3" >
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterLowerBorderProfile"
                             Storyboard.TargetProperty="Height"
                             From="{Binding ElementName=OuterLowerBorderProfile, Path=ActualHeight}" To="35" Duration="0:0:0:0.3" >
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterDarkShadowProfile"     
                             Storyboard.TargetProperty="ShadowDepth"
                             From="{Binding ElementName=OuterDarkShadowProfile, Path=ActualShadowDepth}" To="0" Duration="0:0:0:0.3">
                        </DoubleAnimation>
                        <DoubleAnimation Storyboard.TargetName="OuterLightShadowProfile"
                             Storyboard.TargetProperty="ShadowDepth"     
                             From="{Binding ElementName=OuterLightShadowProfile, Path=ActualShadowDepth}" To="0" Duration="0:0:0:0.3">
                        </DoubleAnimation>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Style.Triggers>
</Style>
<!--Обратная анимация Профилей-->
<Style TargetType="{x:Type Border}" x:Key="ReverseProfileAnimation">
    <Style.Triggers>
        <EventTrigger RoutedEvent="MouseLeftButtonDown">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="OuterProfileGrid"
                             Storyboard.TargetProperty="Opacity"
                             From="{Binding ElementName=OuterProfileGrid, Path=ActualOpacity}" To="1" Duration="0:0:0:0.3"/>
                        <DoubleAnimation Storyboard.TargetName="OuterUpperBorderProfile"
                             Storyboard.TargetProperty="Width"
                             From="{Binding ElementName=OuterUpperBorderProfile, Path=ActualWidth}" To="140" Duration="0:0:0:0.3"/>
                        <DoubleAnimation Storyboard.TargetName="OuterUpperBorderProfile"
                             Storyboard.TargetProperty="Height"
                             From="{Binding ElementName=OuterUpperBorderProfile, Path=ActualHeight}" To="40" Duration="0:0:0:0.3" />
                        <DoubleAnimation Storyboard.TargetName="OuterLowerBorderProfile"
                             Storyboard.TargetProperty="Width"
                             From="{Binding ElementName=OuterLowerBorderProfile, Path=ActualWidth}" To="140" Duration="0:0:0:0.3" />
                        <DoubleAnimation Storyboard.TargetName="OuterLowerBorderProfile"
                             Storyboard.TargetProperty="Height"
                             From="{Binding ElementName=OuterLowerBorderProfile, Path=ActualHeight}" To="40" Duration="0:0:0:0.3" />
                        <DoubleAnimation Storyboard.TargetName="OuterDarkShadowProfile"     
                             Storyboard.TargetProperty="ShadowDepth"
                             From="{Binding ElementName=OuterDarkShadowProfile, Path=ActualShadowDepth}" To="5" Duration="0:0:0:0.3"/>
                        <DoubleAnimation Storyboard.TargetName="OuterLightShadowProfile"
                             Storyboard.TargetProperty="ShadowDepth"     
                             From="{Binding ElementName=OuterLightShadowProfile, Path=ActualShadowDepth}" To="2" Duration="0:0:0:0.3"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Style.Triggers>
</Style>

Ответы (0 шт):