ポリライン オブジェクトを使用して動的に作成されたグラフィックがあります。興味深い結果が得られますが、最後の 10 個の座標のみを保持したいと思います。10 番目の位置に到達すると、すべての座標が X ピクセル分左に移動し、最後に新しい値が追加されます。
描画クラスの Add 関数で、次のようなコードを試しました。
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);
}
しかし、ポイントオブジェクトを非常に時間をかけずに作成するためのよりクリーンな方法が欲しいです。