空闲时隐藏光标

时间:2016-05-25 08:38:00

标签: wpf timer mouse

在我的WPF应用程序中,我希望在光标没有移动几秒钟时隐藏它。 如果它被移动,我想再次显示它。 有什么想法吗?

1 个答案:

答案 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;
        }));
    }
}

当计时器过去时,光标被隐藏。当它移动时它会重新出现并重置计时器。