Вы можете анимировать линейный градиент:
<Storyboard x:Key="Focused" >
<DoubleAnimation Duration="0:0:0.3" Storyboard.TargetProperty=
"BorderBrush.GradientStops[0].Offset" Storyboard.TargetName="Bd"/>
</Storyboard>
Хорошо, пока. Вы можете установить цвет, чтобы оживить его. Как вы можете установить свойство To, чтобы указать
к градиентному ресурсу у вас уже есть?
Можно ли использовать целевое свойство borderbrush без смещения? В большинстве случаев мне нужно полностью переключить градиент.
EDIT:
Хорошо, тогда как я могу использовать цветовую анимацию для перехода от одного градиентного смещения к другому, где целевой цвет не жестко закодирован, а исходит от ресурса?
пример:
<!-- @ MouseOver -->
<LinearGradientBrush x:Key="MouseOverBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FF656565" Offset="0"/>
<GradientStop Color="#33656565" Offset="1"/>
</LinearGradientBrush>
<Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="{StaticResource CheckBoxForeground}"/>
<Setter Property="Background" Value="{StaticResource CheckBoxGradientBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Border x:Name="Bd"
Background="{TemplateBinding Background}">
<ContentPresenter
Content="{TemplateBinding Content}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
RecognizesAccessKey="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Bd" Property="Background" Value="{StaticResource MouseOverBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
если я хочу анимировать фон bd при наведении мыши на mouseoverbrush, как я могу это сделать?