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
@ Annish, сказал вам, что это было непроверено ... Я забыл запустить таймер: D также я не правильно обрабатывал OverrideCursor. Он работает сейчас. – Natxo
Я не думаю, что OverrideCursor подходит для того, чтобы активировать программное обеспечение другим, чтобы он никогда не показывал курсор. – lindexi