TriggerAction对象必须与一个且仅一个触发器对象相关联

时间:2013-12-03 17:22:02

标签: c# wpf animation event-triggers

我在样式资源中定义了BeginStoryboard对象。

在相同的样式定义中,我想在2个触发动画的事件触发器中使用这个BeginStoryboard对象。

2个不同的事件触发器可能会使用相同的对象,或者我必须定义2个不同的BeginStoryboard对象?

 <Style x:Key="SerialPoster" TargetType="Border">

        <Style.Resources>
            <BeginStoryboard x:Key="SerialPosterBeginStoryBoard">
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].ScaleX"
                                     From="0"
                                     To="1"
                                     Duration="0:0:2"
                                     AccelerationRatio="1" />

                    <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].ScaleY"
                                     From="0"
                                     To="1"
                                     Duration="0:0:2"
                                     AccelerationRatio="1" />

                    <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[1].Angle"
                                     From="70"
                                     To="0"
                                     Duration="0:0:2" />
                </Storyboard>
            </BeginStoryboard>
        </Style.Resources>

        <!-- TriggerAction object must be associated with one and only one trigger object. -->
        <Style.Triggers>


            <EventTrigger RoutedEvent="Border.Loaded">
                <EventTrigger.Actions>
                    <StaticResource ResourceKey="SerialPosterBeginStoryBoard"/>
                </EventTrigger.Actions>
            </EventTrigger>


            <EventTrigger RoutedEvent="Border.MouseEnter">
                <EventTrigger.Actions>
                    <StaticResource ResourceKey="SerialPosterBeginStoryBoard" />
                </EventTrigger.Actions>
            </EventTrigger>

        </Style.Triggers>
    </Style>

1 个答案:

答案 0 :(得分:1)

是的,可以引用资源,以便在不同的地方重用资源实例。

无需将Storyboard放在Style.Resource中,只需将其放在Window中。