C# WPF:如何获得变换后的矩形坐标?
有没有办法在完成一个任务后检查矩形的坐标 假设我有一个矩形C# WPF:如何获得变换后的矩形坐标?,c#,wpf,C#,Wpf,有没有办法在完成一个任务后检查矩形的坐标 假设我有一个矩形 Rectangle rect = new Rectangle{ Width = 80, Height = 80}; Canvas.setLeft(rect,512); 然后我设置矩形的位置 Rectangle rect = new Rectangle{ Width = 80, Height = 80}; Canvas.setLeft(rect,512); 然后我在把它添加到画布上之后给它设置动画 var anim = new D
Rectangle rect = new Rectangle{ Width = 80, Height = 80};
Canvas.setLeft(rect,512);
然后我设置矩形的位置
Rectangle rect = new Rectangle{ Width = 80, Height = 80};
Canvas.setLeft(rect,512);
然后我在把它添加到画布上之后给它设置动画
var anim = new DoubleAnimation(0, 300, new Duration(TimeSpan.FromSeconds(2)));
var trans = new TranslateTransform();
rect.RenderTransform = trans;
trans.BeginAnimation(TranslateTransform.XProperty, anim);
如何获得变换矩形的新坐标
我试过这个
Canvas.GetLeft(rect[i].getRect);
结果仍然是512
我正在努力实现的目标:
我试图在矩形到达某个坐标后将其删除。也许我的问题解决了,但我总是想知道是否还有其他方法: 所以,我真的很感激你能给我另一个答案 这就是我所做的。 Canvas.Left和TranslateTransform都可以有动画。所以对于我的简单问题,我不再把它混在一起了。我没有用翻译。 只要做:
rect.BeginAnimation(Canvas.LeftProperty,anim);
这样,我们可以在制作动画时捕捉到矩形的坐标。
简单地做:
Canvas.GetLeft(rect);
我认为这是最简单的方法
无论如何,感谢克莱门斯:显然,如果将Canvas.Left设置为512,然后在x方向执行300像素的平移变换,那么相对于画布的最终有效x位置是512+300=812像素。但是,为了保持简单,您不应该混合使用,只使用Canvas.Left或TranslateTransform.X。两个都可以动画。谢谢克莱姆。我刚刚意识到,画布本身可以制作动画。所以我使用的只是rect.BeginAnimationCanvas.XProperty,anim;我可以通过动画制作Canvas.GetLeftrect: