Wpf RenderTranform不进行渲染转换

Wpf RenderTranform不进行渲染转换,wpf,ellipse,uielement,Wpf,Ellipse,Uielement,所以我有一张画布和一个椭圆。调用一个方法,像这样移动椭圆 public void moveElipse1ToCoordinate(Point point) { Action action = () => { TranslateTransform moveTo = new TranslateTransform(); moveTo.X = point.X; moveTo.Y = p

所以我有一张画布和一个椭圆。调用一个方法,像这样移动椭圆

public void moveElipse1ToCoordinate(Point point)
    {
        Action action = () =>
        {
           TranslateTransform moveTo = new TranslateTransform();
            moveTo.X = point.X;  
            moveTo.Y = point.Y;
            StimulyEllipse1.RenderTransform = moveTo;
        };
        Dispatcher.BeginInvoke(action);
    }
我在for循环中使用这个函数

for(int i=0 ; i<=1000; i++)
moveElipse1ToCoordinate(new Point(i,i)

for(int i=0;i如果您希望它平滑移动,作为动画,您需要专门使用动画类。在循环完成之前,UI不会更新(如果X,Y为画布大小,椭圆将显示在整个画布的下方和右侧).

好的,所以我使用了DoubleAnimation类,它可以工作。我现在的问题是,我目前无法获得椭圆的依赖值来应用我的动画。它的位置首先用Canvas.SetTop设置,但是这不是椭圆属性,因此我可以在BeginAnimation参数中使用它。您能建议我可以使用什么来表示该UI元素相对于其父元素的X和Y位置吗?(在本例中为画布)?代码,我希望使用从另一个函数接收到的坐标移动UIElement。它将在X轴和Y轴上以2D方式移动,并且将由设备作为用户控制器,因此它应该尽可能平滑。myEllipse.GetValue(Canvas.TopProperty)
-这有帮助吗?否则,您可能想在这里问一个新问题。不幸的是,我尝试了这个问题,但它告诉我它无法从对象转换为依赖项值。我将尝试问一个单独的问题。