Как использовать несколько анимаций для 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>