动画结束后,我需要更改对象的属性。
当我读到“完成”时我很高兴,但是当我尝试时:

<Storyboard>
    <ColorAnimation
     Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
     To="RoyalBlue"
     Duration="0:0:1"
     Completed="ColorAnimation_Completed"/>
</Storyboard>


我有:

无法在样式的目标标签上指定事件“已完成”。请改用EventSetter。

在这种情况下如何创建EventSetter?

最佳答案

如果是以某种样式设置的,则可以将情节提要板设置为当前正在使用的任何控件的静态资源:

    <UserControl.Resources>
         <storyboard x:Key"Animation">
            <ColorAnimation
            Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
            To="RoyalBlue"
            Duration="0:0:1"
            Completed="ColorAnimation_Completed"/>
         </Storyboard>
</UserControl.Resources>


然后,在您的控制下:

<Style x:Name="Style" TargetType="{x:Type yourcontroltype}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=whatevertriggeresyouranimation}" Value="triggerValue" >
                    <DataTrigger.EnterActions>
                        <BeginStoryboard Storyboard="{StaticResource Animation}">
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
       </Style>


您需要在此处填写一些变量,因为我对您正在做的事情还没有足够的了解,但这是可行的。

08-26 14:33