【问题标题】:WPF C# Mouse Down event programattically in a voidWPF C# Mouse Down 事件以编程方式在 void
【发布时间】:2020-10-27 17:42:06
【问题描述】:

我正在尝试在 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
                };
           }

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

【问题讨论】:

  • 您需要阅读 C# 书籍。 “在 void 内制作鼠标按下事件”没有任何意义。
  • 正如@Clemens 所说,您的问题没有意义。据我所知,您似乎真的在问... 如何将事件附加到动态生成的对象。

标签: c# wpf events mousedown


【解决方案1】:

首先,您的问题并不清楚,正如 cmets 中指出的那样没有多大意义。术语在您实际做的事情上是错误的,但不是什么大问题,它需要与您实际做的事情保持一致。

例如在 cmets 中提到的@quaabaam:

如何将事件附加到动态生成的对象

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-12
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    相关资源
    最近更新 更多