【发布时间】:2016-09-25 21:19:32
【问题描述】:
我正在将 UserControl 从 Windows 窗体 转换为 WPF,这是我的 Windows 窗体 工作代码:
GlobalMouseHandler mouseHandler = new GlobalMouseHandler();
mouseHandler.MouseMove += OnGlobalMouseMove;
mouseHandler.MouseButtonUp += OnGlobalMouseButtonUp;
public class GlobalMouseHandler : IMessageFilter, IDisposable
{
public event MouseMovedEvent MouseMove;
public event MouseButtonUpEvent MouseButtonUp;
public GlobalMouseHandler(){
Application.AddMessageFilter(this);
}
public bool PreFilterMessage(ref Message m)
{
switch (m.Msg)
{
case WM_MOUSEMOVE:
MouseMove?.Invoke();
break;
case WM_LBUTTONUP:
MouseButtonUp?.Invoke();
break;
}
return false;
}
}
我使用IMessageFilter 在我的应用程序中获取鼠标移动和鼠标向上事件并附加到它们。
现在,我知道IMessageFilter is not available in WPF,但是有没有一种简单的方法可以在 WPF 中记录这些简单的鼠标事件?
【问题讨论】:
标签: c# wpf mouseevent imessagefilter