1

我不能使这个动画工作:

        <Ellipse Opacity="0.7" Width="150" Height="50" StrokeThickness="5">
        <Ellipse.Triggers>
                <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard RepeatBehavior="Forever" AutoReverse="True">
                                <DoubleAnimation From="0" To="100" Duration="0:0:2" Storyboard.TargetProperty="LayoutTransform.Y" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
        </Ellipse.Triggers>
    </Ellipse>

基本上它是Ellipse从 Y 的起点转换到 Y 的终点。但基本上,它不动,并引发错误......有什么想法吗?

4

2 回答 2

2

动画LayoutTransform不会移动对象。您正在寻找的是RenderTransform属性的动画:

您必须将TranslateTransform放入Ellipse.RenderTransform并更改Storyboard.TargetProperty

<Ellipse Opacity="0.7" Width="150" Height="50" StrokeThickness="5" Stroke="Black">
    <Ellipse.RenderTransform>
        <TranslateTransform />
    </Ellipse.RenderTransform>
    <Ellipse.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard RepeatBehavior="Forever" AutoReverse="True">
                        <DoubleAnimation From="0" To="100" Duration="0:0:2"
                            Storyboard.TargetProperty="RenderTransform.Y" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Ellipse.Triggers>
</Ellipse>
于 2013-01-23T10:02:36.263 回答
1

为了简单起见,您可以将省略号放在画布中:

 <Canvas>
            <Ellipse Width="30" Height="30" Fill="Purple" Canvas.Top="0" >
                <Ellipse.Triggers>
                    <EventTrigger RoutedEvent="FrameworkElement.Loaded" >
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Duration="0:0:5"  AutoReverse="True" Storyboard.TargetProperty="(Canvas.Top)" To="100" RepeatBehavior="Forever" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Ellipse.Triggers>
            </Ellipse>
        </Canvas>
于 2013-01-23T10:13:36.607 回答