我有一个用折线对象动态制作的图形。它产生了一些有趣的东西,但我想只保留最后 10 个坐标,一旦我们到达第 10 个位置,每个坐标都会向左移动 X 像素,最后会添加新值。
在我的绘图类的添加函数中,我尝试了这种代码:
if (points.Count > 10)
{
myPolyline.Points.RemoveAt(0);
foreach(Point p in myPolyline.Points)
{
p.X = p.X - 50;//Move all coord back to have a place for the new one
}
}
这不起作用,因为我们无法在 ForEach 循环中修改集合的变量。在 WPF/C# 中执行此操作的最佳方法是什么?
更多信息
我可以这样做:
for (int i = 0; i < this.myPolyline.Points.Count; i++)
{
this.myPolyline.Points[i] = new Point(this.myPolyline.Points[i].X - 50, this.myPolyline.Points[i].Y);
}
但我想要一种更简洁的方式来做到这一点,而不必非常时间地创建点对象。