所以,我试图将这个矩形框移动到这样的网格上 -
为此,我正在使用故事板。
我正在使用DoubleAnimation在我的一个类中移动X轴和Y轴上的框。我从MainWindow类调用这个类。但是,对于每个盒子,每转一圈,我都必须创建一个新的双动画,分配偏移值,开始时间,持续时间等,如下所示 -
//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#的新手所以请不要介意这听起来有点傻。
谢谢!
答案 0 :(得分:0)
我能够在不使用路径的情况下完成。
对于每一个动作,我都创建了一个新的双动画。
所以对于左 - 右 - 右移动,我用
创建了3个双动画X轴,Y轴和X轴再次。