保持单击的椭圆突出显示,直到其他椭圆被单击

Keep clicked ellipse highlighted until other ellipse is clicked

现在我有一个 canvas 上面有一堆省略号,无论用户点击什么地方。我试图做到这一点,当他点击一个时,它周围会显示一个黑色边框,直到他点击另一个。现在我只有它,所以当他点击一个时,边框出现并停留在那里。

这是处理椭圆上的向下点击的函数。

    private void ellipse_MouseDown(object sender, MouseButtonEventArgs e)
    {
        e.Handled = true;

        selectedNodeEllipse = (Ellipse)sender;
        SelectedNode = (Node)selectedNodeEllipse.Tag; //just displays some info about the node

        selectedNodeEllipse.Stroke = Brushes.Black;

    }

所有省略号都在一个列表(节点类型)中。

有什么想法吗?

将先前的椭圆和画笔存储在一个变量中,并在分配新笔画时检索数据属性。

代码

private Ellipse selectedNodeEllipse;
private Ellipse previousEllipse = null;
private Brush previousBrush;

private void ellipse_MouseDown(object sender, MouseButtonEventArgs e) {

  e.Handled = true;
  if (previousEllipse != null)
  {
    previousEllipse.Stroke = previousBrush;
  }
  selectedNodeEllipse = (Ellipse)sender;
  previousEllipse = selectedNodeEllipse;
  previousBrush = previousEllipse.Stroke;
  SelectedNode = (Node)selectedNodeEllipse.Tag; //just displays some info about the node

  selectedNodeEllipse.Stroke = Brushes.Black;

}