【发布时间】:2010-11-19 01:20:12
【问题描述】:
我有一个用折线对象动态制作的图形。它产生了一些有趣的东西,但我想只保留最后 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);
}
但我想要一种更简洁的方式来做到这一点,而不必非常频繁地创建点对象。
【问题讨论】: