2
在我的WPF应用程序中,我想在光标未移动数秒时隐藏光标。 如果它被移动,我想再次显示它。 任何想法?空闲时隐藏光标
在我的WPF应用程序中,我想在光标未移动数秒时隐藏光标。 如果它被移动,我想再次显示它。 任何想法?空闲时隐藏光标
你可以使用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();
}
这是调度正确调用覆盖光标一个帮手:
public static class MouseExt
{
public static void SafeOverrideCursor(Cursor cursor)
{
Application.Current.Dispatcher.Invoke(new Action(() =>
{
Mouse.OverrideCursor = cursor;
}));
}
}
当计时器过去后,光标被隐藏。当它移动它重新出现,定时器重置。
不起作用。什么都没有发生。在阅读代码时,这会隐藏鼠标3秒钟,然后再次显示。 – Annish
@nnnish,告诉你它是未经测试...我忘了开始计时器:D也我没有正确处理OverrideCursor。它现在有效。 – Natxo
我不认为OverrideCursor适合当我通过其他方式激活软件时它不会显示光标。 – lindexi