无论如何,类可以捕获应用程序中的最后一次单击吗?就像是
public class MyClickManagerClass
{
public MyClickManagerClass()
{
// subscribe to a global click event
}
private void GlobalClickEventHandler(object sender, EventArgs e)
{
// do something with the click here
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间!
Ray*_*rns 13
如果你只关心在给定的任何地方捕获鼠标点击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);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,"sender"将始终是InputManager,但您可以将坐标映射到其他控件MouseEventArgs.GetPosition(visual).