Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用带有故事板的路径设置动画#_C#_Storyboard - Fatal编程技术网

C# 如何在C中使用带有故事板的路径设置动画#

C# 如何在C中使用带有故事板的路径设置动画#,c#,storyboard,C#,Storyboard,所以,我试着把我的长方形盒子绕着网格移动,就像这样- //Code to move Boxes 1-4 to first grid point in their path TranslateTransform moveTransform = new TranslateTransform(); moveTransform.X = 0; moveTransform.Y = 0; x.RenderTransform = m

所以,我试着把我的长方形盒子绕着网格移动,就像这样-

        //Code to move Boxes 1-4 to first grid point in their path
        TranslateTransform moveTransform = new TranslateTransform();
        moveTransform.X = 0;
        moveTransform.Y = 0;
        x.RenderTransform = moveTransform;


        Storyboard s = new Storyboard();


        DoubleAnimation Move1= new DoubleAnimation();

        Move1.From = 0;
        Move1.To = xPosition; // calculate correct offset here
        Move1.Duration = new Duration(TimeSpan.FromSeconds(hops));
        if (x==Box2)
        {
            Move1.BeginTime = TimeSpan.FromSeconds(5);//For Box 2, the first move will be across Y-Axis and hence X-Axis move will be delayed by 5 seconds.
        }
        else
        {
            Move1.BeginTime = TimeSpan.Zero;
        }

        Storyboard.SetTarget(Move1, x);
        Storyboard.SetTargetProperty(Move1, new PropertyPath("(UIElement.RenderTransform).(X)"));
        s.Children.Add(Move1);

为此,我使用了故事板

我正在使用DoubleAnimation在我的一个类中移动X轴和Y轴上的长方体。我从主窗口类调用这个类。但是,对于每一个方块和每一个回合,我必须创建一个新的双动画,指定偏移值、开始时间、持续时间等。如下-

        //Code to move Boxes 1-4 to first grid point in their path
        TranslateTransform moveTransform = new TranslateTransform();
        moveTransform.X = 0;
        moveTransform.Y = 0;
        x.RenderTransform = moveTransform;


        Storyboard s = new Storyboard();


        DoubleAnimation Move1= new DoubleAnimation();

        Move1.From = 0;
        Move1.To = xPosition; // calculate correct offset here
        Move1.Duration = new Duration(TimeSpan.FromSeconds(hops));
        if (x==Box2)
        {
            Move1.BeginTime = TimeSpan.FromSeconds(5);//For Box 2, the first move will be across Y-Axis and hence X-Axis move will be delayed by 5 seconds.
        }
        else
        {
            Move1.BeginTime = TimeSpan.Zero;
        }

        Storyboard.SetTarget(Move1, x);
        Storyboard.SetTargetProperty(Move1, new PropertyPath("(UIElement.RenderTransform).(X)"));
        s.Children.Add(Move1);
我知道有一种方法可以定义从源到达目的地的路径,但我不确定如何做到这一点?此外,我不确定我在这里做的是不是最佳的方式

所以,我的问题是-

做这件事最好的方法是什么?如何定义动画的路径?

我是C#的新手,所以如果这听起来很愚蠢,请不要介意


谢谢大家!

我不需要使用path就可以做到这一点

对于每个动作,我都创建了一个新的双动画

所以对于左下右移动,我用

X轴、Y轴和X轴