つまり、基本的にスタックパネルがあり、foreachループを使用して子を反復処理しています。すべての子は「パス」形式ですが、一部は線で、一部は省略記号です(または、パスに変換される前は少なくとも) )。
私の質問は、どれが線で、どれが楕円であるかをどうやって見分けることができるかということです。、isMouseOverイベントを使用して、マウスが省略記号の上にあるかどうかを確認し、MouseDownでそれに応じて変更します。
private void GraphPanel_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
foreach (var x in GraphPanel.Children)
{
if (((Path)x).IsMouseOver)
{
var converter = new System.Windows.Media.BrushConverter();
var brush = (Brush)converter.ConvertFromString("#FFB1D100");
((Path)x).Stroke = brush;
((Path)x).StrokeThickness = 8;
}
else
{
((Path)x).Stroke = Brushes.Black;
((Path)x).StrokeThickness = 4;
}
}
}
}