是否可能在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标点击?
我的意思是,我不想像这样编写代码:
control.MouseLeftButtonDown += this.HandleMouseLeftButtonDown;
我想知道用户是否在屏幕上点击了某个地方。在C#(WPF或Silverlight)中是否有可能实现?
是否可能在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标点击?
我的意思是,我不想像这样编写代码:
control.MouseLeftButtonDown += this.HandleMouseLeftButtonDown;
我想知道用户是否在屏幕上点击了某个地方。在C#(WPF或Silverlight)中是否有可能实现?
例如,您可以在主窗口的静态构造函数中注册一个类处理程序:
static MainWindow() {
EventManager.RegisterClassHandler(typeof (MainWindow),
Mouse.MouseDownEvent,
new MouseButtonEventHandler(OnGlobaMouseDown));
}
handledEventToo
的布尔值,否则很少有事件会到达指定的处理程序。 - H.B.这是通过捕获鼠标来实现的。这会强制任何鼠标事件都被指向你,即使它移出窗口。使用Mouse.Capture()方法。
if (Mouse.LeftButton == MouseButtonState.Pressed)
{
...
}
你需要包含这个。
using System.Windows.Input;
这在WPF中对我有效。