在我的WPF应用程序中,我希望在光标没有移动几秒钟时隐藏它。 如果它被移动,我想再次显示它。 有什么想法吗?
答案 0 :(得分:3)
您可以使用MouseMove
这样的事件:
经过测试的代码:
myTimer = new Timer(3000);
myTimer.AutoReset = false;
myTimer.Elapsed += delegate { MouseExt.SafeOverrideCursor(Cursors.None); }; //Hide cursor
private void MyView_MouseMove(object sender, MouseEventArgs e)
{
myTimer.Stop();
Mouse.OverrideCursor = null; //Show cursor
myTimer.Start();
}
这是一个帮助程序,用于正确调度调用以覆盖Cursor:
public static class MouseExt
{
public static void SafeOverrideCursor(Cursor cursor)
{
Application.Current.Dispatcher.Invoke(new Action(() =>
{
Mouse.OverrideCursor = cursor;
}));
}
}
当计时器过去时,光标被隐藏。当它移动时它会重新出现并重置计时器。