2017-09-01 6 views
0

私はキャンバスを持っています。myCanvasでは、ポイントを指定する場所に複数のポリゴンを描画します。キャンバスに複数のポリゴンを描画する

PointCollection polygonpoints = new PointCollection(); 

private void myCanvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
{ 
    //add polygon collection 
    Point p = e.GetPosition(MapGrid); 
    polygonpoints.Add(p); 
} 

private void myCanvas_MouseRightButtonUp(object sender, MouseButtonEventArgs e) 
{ 
    Polygon poly = new Polygon(); 
    poly.Points = polygonpoints; 
    poly.Fill = Brushes.AliceBlue; 
    MapCanvas.Children.Add(poly); 
    polygonpoints.Clear(); // this is making clear the polygon but the pointcollection is remain 
} 

polygonpoints.Clear - 次のポリゴンのポリゴンポイントをクリアするためにこれを使用することを計画しました。しかし、これは起こっていません。

お願いします。

+0

にポリゴン作成正確に何が起こっていませんか? – orhtej2

+0

次のステップは、左クリックしている間は必ず現在のポリゴンを表示することです。最初に新しいポリゴンを作成し、キャンバスに追加します。現在のPolygonへの参照を(PointCollectionの代わりに)クラスメンバーとして保持します。左クリックするたびにPointプロパティにポイントを追加します。右クリックして、新しいポリゴンを作成して追加し、そのポリゴンで操作します。 – Clemens

答えて

0

私は、というコピーではなく、polygonpointsを渡していると思います。

変更

Polygon poly = new Polygon 
{ 
    Points = new PointCollection(polygonpoints), 
    Fill = Brushes.AliceBlue 
}; 
+1

また、 'PointCollection'も' ICollection 'であるため、その宣言を変更する必要はありません。 – Clemens

+0

それは..ありがとう! – srinivas

関連する問題