WPF C# Mouse Down 事件以编程方式无效

WPF C# Mouse Down event programattically in a void

我正在尝试在 void 中创建一个鼠标按下事件,但是我的所有尝试都没有成功,这就是我现在所拥有的:

           void newEllipse
           {
                Ellipse pic = new Ellipse()
                ImageBrush img = new ImageBrush();
                img.ImageSource = new BitmapImage(new Uri(gamePic));
                pic.Fill = img;                  

                pic.MouseDown += new MouseButtonEventHandler(object _, MouseButtonEventHandler e)
                {
                     //Stuff here
                };
           }

但是这不起作用,我不确定还能做什么。有人帮忙吗?

首先,您的问题并不明确,也没有像评论中指出的那样有意义。术语在你实际做的事情上是错误的,但不是很大,它需要与你实际做的事情保持一致。

例如评论中提到的@quaabaam:

How to attach an event to a dynamically generated object

现在一切都结束了,您要做的是向新创建的对象添加一个事件处理程序 pic。有几种方法可以做到这一点,但我将列出一个可以处理该事件的简单方法。

 pic.MouseDown += (sender, e) => { //Stuff here }

这是一个lambda expression that results in a delegate functionsender 是实际对象,e 是实际事件参数。处理程序需要这两个参数,即使您可能不使用它们也必须包括在内。

使用上述方法的副作用是,当您需要删除处理程序时,它可能会将原始处理程序留在那里并可能造成泄漏,因为它不保留对该委托的引用。