C# 以WPF形式显示图像的双动画

C# 以WPF形式显示图像的双动画,c#,wpf,xaml,animation,doubleanimation,C#,Wpf,Xaml,Animation,Doubleanimation,我想用移动动画将汽车移动到点0,0,但问题是我得到一个错误,然后我使用这个函数-。 应用程序外观: . 这是我的代码(我在一篇文章中找到了这个函数): 和xaml: <DockPanel Grid.Row="1" Background="#FF695887"> <Canvas> <Image Name="car1" /> </Canvas> </DockPanel>

我想用移动动画将汽车移动到点0,0,但问题是我得到一个错误,然后我使用这个函数-。 应用程序外观: . 这是我的代码(我在一篇文章中找到了这个函数):

和xaml:

    <DockPanel Grid.Row="1" Background="#FF695887">
        <Canvas>
            <Image Name="car1" />
        </Canvas>
    </DockPanel>


如何解决它?

它应该根据图像中指定的属性Canvas.Top、Canvas.Left从图像的初始位置开始。我检查过了,一切正常。
public void Eiti(Image target, double newX, double newY)
    {
        var top = Canvas.GetTop(target);
        var left = Canvas.GetLeft(target);
        top = Double.IsNaN(top) ? 0 : top;
        left = Double.IsNaN(left) ? 0 : left;

        var storyboard = new Storyboard();

        DoubleAnimation anim1 = new DoubleAnimation(top, newY, TimeSpan.FromSeconds(10));
        Storyboard.SetTarget(anim1, target);
        Storyboard.SetTargetProperty(anim1, new PropertyPath(Canvas.TopProperty));
        storyboard.Children.Add(anim1);

        DoubleAnimation anim2 = new DoubleAnimation(left, newX, TimeSpan.FromSeconds(10));
        Storyboard.SetTarget(anim2, target);
        Storyboard.SetTargetProperty(anim2, new PropertyPath(Canvas.LeftProperty));
        storyboard.Children.Add(anim2);

        storyboard.Begin();
    }
public void Eiti(Image target, double newX, double newY)
    {
        var top = Canvas.GetTop(target);
        var left = Canvas.GetLeft(target);
        top = Double.IsNaN(top) ? 0 : top;
        left = Double.IsNaN(left) ? 0 : left;

        var storyboard = new Storyboard();

        DoubleAnimation anim1 = new DoubleAnimation(top, newY, TimeSpan.FromSeconds(10));
        Storyboard.SetTarget(anim1, target);
        Storyboard.SetTargetProperty(anim1, new PropertyPath(Canvas.TopProperty));
        storyboard.Children.Add(anim1);

        DoubleAnimation anim2 = new DoubleAnimation(left, newX, TimeSpan.FromSeconds(10));
        Storyboard.SetTarget(anim2, target);
        Storyboard.SetTargetProperty(anim2, new PropertyPath(Canvas.LeftProperty));
        storyboard.Children.Add(anim2);

        storyboard.Begin();
    }