在画布中选择生成的椭圆

本文关键字:布中 选择 | 更新日期: 2023-09-27 18:17:25

我想获取所选圆点的名称。

这是我的c#代码:(代码后面)

private StackPanel generateSensorObject(int tempvalue, int diameter, string moduletype, string modulename, string macaddress, string lastdate, string description)
    {
        StackPanel s1 = new StackPanel();
        Viewbox v1 = new Viewbox();
        Grid g1 = new Grid();
        ToolTip tool1 = new ToolTip();
        StackPanel st1 = new StackPanel();
        TextBlock tool1t1 = new TextBlock();
        TextBlock tool1t2 = new TextBlock();
        TextBlock tool1t3 = new TextBlock();
        TextBlock tool1t4 = new TextBlock();
        Button b1 = new Button();
        ContextMenu m1 = new ContextMenu();
        MenuItem mi1 = new MenuItem();
        Ellipse e1 = new Ellipse();
        e1.Height = e1.Width = diameter;
        tool1t1.Text = "MAC Addresse: " + macaddress;
        tool1t2.Text = "Typ: " + moduletype;
        tool1t3.Text = "letzter Wert eingetroffen: " + lastdate;
        tool1t4.Text = "Beschreibung: " + description;
        b1.Content = "Diagramm";
        st1.Children.Add(tool1t1);
        st1.Children.Add(tool1t2);
        st1.Children.Add(tool1t3);
        st1.Children.Add(tool1t4);
        st1.Children.Add(b1);
        tool1.Content = st1;
        TextBlock t1 = new TextBlock();
        TextBlock t2 = new TextBlock();
        t1.Text = modulename;
        t2.Text = tempvalue.ToString();
        t2.ToolTip = tool1;
        tool1.StaysOpen = true;
        g1.Children.Add(e1);
        s1.Children.Add(t1);
        g1.Children.Add(t2);
        t2.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
        t2.VerticalAlignment = System.Windows.VerticalAlignment.Center;
        s1.MouseRightButtonUp += ButtonDiagramm_Click;
        v1.Child = g1;
        s1.Children.Add(v1);
        return s1;
    }

这是我生成椭圆的方法。

现在我试图用ButtonDiagram方法在画布上获得选定椭圆的名称。但是我不知道怎么做。

有人知道诀窍吗?谢谢!

在画布中选择生成的椭圆

你可以访问RoutedEventArgs.Source属性,如果你的鼠标右键点击一些椭圆,它应该在那里传递:

void ButtonDiagramm_Click(object sender, MouseButtonEventArgs e){
   var ellipse = e.Source as Ellipse;
   if(ellipse != null){
      //do everything with ellipse here, not just access its Name
   }
}