いくつかの Ellipse オブジェクトを含む WPF キャンバスがあります (円として表示されます)。各円は、実際にはカスタム ホール パターン クラスであるコレクション クラス インスタンスからのものです。各パターンには特定の数の円があり、次のコードを使用してコレクションを反復処理することにより、各円がキャンバスに追加されます。
したがって、キャンバスには多数の円が取り込まれ、各円は特定のパターン インスタンスに属します。ここでスクリーンショットを見ることができます: http://twitpic.com/1f2ci/full
ここで、キャンバス上の円をクリックする機能を追加し、それが属するコレクションを判別できるようにして、その円が属する選択されたパターンでさらに作業を行えるようにします。
public void DrawHoles()
{
// Iterate over each HolePattern in the HolePatterns collection...
foreach (HolePattern HolePattern in HolePatterns)
{
// Now iterate over each Hole in the HoleList of the current HolePattern...
// This code adds the HoleEntity, HoleDecorator, and HoleLabel to the canvas
foreach (Hole Hole in HolePattern.HoleList)
{
Hole.CanvasX = SketchX0 + (Hole.AbsX * _ZoomScale);
Hole.CanvasY = SketchY0 - (Hole.AbsY * _ZoomScale);
canvas1.Children.Add(Hole.HoleEntity);
}
}
}