2
私のWPFアプリケーションでは、カーソルが数秒間動かなかったときにカーソルを隠したいと思っています。 移動した場合は、再度表示します。 アイデアアイドル時にカーソルを隠す
私のWPFアプリケーションでは、カーソルが数秒間動かなかったときにカーソルを隠したいと思っています。 移動した場合は、再度表示します。 アイデアアイドル時にカーソルを隠す
あなたはこのようMouseMove
イベントを使用することができます。
テスト済みコード:
public static class MouseExt
{
public static void SafeOverrideCursor(Cursor cursor)
{
Application.Current.Dispatcher.Invoke(new Action(() =>
{
Mouse.OverrideCursor = cursor;
}));
}
}
:これは、カーソルを無効にするために、適切に呼び出しをディスパッチするためのヘルパーは
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();
}
ですタイマーが経過するとカーソルは非表示になります。移動したときに再び表示され、タイマーがリセットされます。
動作しません。何も起こっていない。コードを読むと、マウスが3秒間隠れてしまい、再び表示されます。 – Annish
@Annish、それはあなたがそれがテストされていないと言った...私は忘れてタイマーを開始:Dも私は適切にOverrideCursorを処理していませんでした。それは今働く。 – Natxo
私はカーソルが表示されないように他の人がソフトウェアをアクティブにすると、OverrideCursorがうまくいるとは思わない。 – lindexi