我要在一个较长的周期内添加椭圆(添加了100个以上),并且我想知道在单击事件的周期内以相同的方式添加一个属性。
在for循环内:

 var ellipse = new Ellipse();
 ellipse.myValue=12; // this needs to be editable and working
 ....
 ellipse.MouseDown += ellipseClick;
 canvas2.Children.Add(ellipse);


这是监听器:

private void ellipseClick(object sender, MouseButtonEventArgs e)
    {
        if(myValue==12)
        ....
    }


当然,这有点复杂,每个椭圆都需要一个指针或3个int值。
我不想遍历每个Ellipse并检查点击位置以及它是否与发送方相同。
我无法扩展Ellipse类,因为它是密封的,并且我无法在Ellipse类中重写代码。

最佳答案

您可以使用Tag属性来存储其他信息。

ellipse.Tag = 12;


我希望这是您要的,但是根据您对我的问题的评论,您只想在每个椭圆中存储信息。

您可以创建一个包含所有所需信息的结构或类,只需将Tag设置为该类即可。它使您可以存储所需的任何内容。

关于c# - 为椭圆添加属性以获取mouseevent C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13423086/

10-10 01:42