MouseMove事件不是静态且只读

时间:2019-05-14 15:20:24

标签: c# wpf event-handling mouseevent

我正在尝试将“ mousemove”事件的委托添加到类中的方法。我正在使用将用于Xaml“ MouseMove”的EventHandler,但它不可用,只有“ MouseMoveEvent”可用(我不知道这是否会影响事情)。

我已经查看了元数据中的2种不同类型,但是告诉我的并不多。我还尝试过将其链接为只读和静态的方法,但这是无效的。

我正在像这样委托:

MainWindow.MouseMoveEvent += delegate (object sender, MouseEventArgs e) { Project.Mouse_Move(this); };

MainWindow是我的UI窗口。这是它正在调用的功能

public partial class Program
{
   public void Mouse_Move(MainWindow MainWind)
    {

    }
}

我正在尝试获得与通过xaml执行相同结果的结果:

Title="MainWindow" MouseMove="Window_MouseMove">

和类似的方法:

 private void Window_MouseMove(object sender, MouseEventArgs e)
    {

    }

欢迎任何解决方案或答案,如果可以采用其他方法,请说。谢谢。

1 个答案:

答案 0 :(得分:1)

MainWindow是一种类型。您需要引用窗口的实际实例,以便能够将事件处理程序连接到其MouseMove事件。尝试Application.Current.MainWindow

Application.Current.MainWindow.MouseMove += delegate (object sender, MouseEventArgs e) { Project.Mouse_Move(this); };

Application.Current.Windows

var window = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
if(window != null)
    window.MouseMove += delegate (object sender, MouseEventArgs e) { Project.Mouse_Move(this); };