1
私のテンプレートのLinearGradientBrushをアニメーションしようとしました。クリックが行われた場合、キャンバスの背景の色を変更したいと思います。 「押された」イベントは発生しますが、何も起こりません。ColorAnimationがトリガーしません
<ControlTemplate x:Key="ButtonTemplate" TargetType="Button">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver" />
<VisualState x:Name="Pressed">
<Storyboard AutoReverse="True" Duration="0:0:0.5">
<ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" To="Red" Duration="0:0:0.5" />
<ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" From="Black" To="Red" Duration="0:0:0.5" />
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Canvas Name="Form" Height="35">
<Canvas.Background>
<LinearGradientBrush EndPoint="0.5,0.5" StartPoint="0.5,0">
<GradientStop Color="#FF007FEA" Offset="0"/>
<GradientStop Color="#FF004580" Offset="1"/>
</LinearGradientBrush>
</Canvas.Background>
</Canvas>
<ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
はい、これはStaticResourceとして使用されます。そしてPanel.Backgroundが動作します。ありがとう –