无论如何,类可以捕获应用程序中的最后一次单击吗?像
这样的东西public class MyClickManagerClass
{
public MyClickManagerClass()
{
// subscribe to a global click event
}
private void GlobalClickEventHandler(object sender, EventArgs e)
{
// do something with the click here
}
}
谢谢你的时间!
答案 0 :(得分:12)
如果您只想捕捉给定Window
中任意位置的鼠标点击,只需在窗口级别订阅MouseDown
或PreviewMouseDown
即可。
如果你真的希望它是应用程序的全局(而不仅仅是窗口),你应该订阅InputManager.PreProcessInput
或InputManager.PostProcessInput
事件并观察鼠标事件:
public MyClickManagerClass()
{
InputManager.Current.PreProcessInput += (sender, e) =>
{
if(e.StagingItem.Input is MouseButtonEventArgs)
GlobalClickEventHandler(sender,
(MouseButtonEventArgs)e.StagingItem.Input);
}
}
请注意,“sender”始终是InputManager,但您可以使用MouseEventArgs.GetPosition(visual)
将坐标映射到其他控件。