2016-05-25 3 views

ответ

2

Вы можете использовать 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; 
     })); 
    } 
} 

Когда таймер истекает, курсор скрыт. Когда он перемещается, он снова появляется, и таймер сбрасывается.

+0

Не работает. Ничего не происходит. Когда я прочитаю код, это скроет мышь в течение 3 секунд, а затем покажет ее снова. – Annish

+0

@ Annish, сказал вам, что это было непроверено ... Я забыл запустить таймер: D также я не правильно обрабатывал OverrideCursor. Он работает сейчас. – Natxo

+0

Я не думаю, что OverrideCursor подходит для того, чтобы активировать программное обеспечение другим, чтобы он никогда не показывал курсор. – lindexi

Смежные вопросы