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

时间:2015-01-07 18:32:19

标签: c# wpf canvas mouseevent ellipse

现在我有一个画布,上面有一堆椭圆,只要用户点击它。当我点击一个时,我试图这样做,在它周围显示一个黑色边框,直到他点击另一个。现在我只是拥有它,所以当他点击一个时,边框出现并停留在那里。

这是处理椭圆点击的功能。

    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;

    }

所有省略号都在列表中(类型为Node)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

<强>代码

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;

}