在n秒不活动后关闭WPF应用程序

Raj*_*Raj 3 c# wpf

如何在'n'秒不活动后关闭WPF应用程序?

Han*_*ant 15

有点晚了,但是我想出了这个代码,它会在任何输入事件上重启一个计时器:

  public partial class Window1 : Window {
    DispatcherTimer mIdle;
    private const long cIdleSeconds = 3;
    public Window1() {
      InitializeComponent();
      InputManager.Current.PreProcessInput += Idle_PreProcessInput;
      mIdle = new DispatcherTimer();
      mIdle.Interval = new TimeSpan(cIdleSeconds * 1000 * 10000);
      mIdle.IsEnabled = true;
      mIdle.Tick += Idle_Tick;
    }

    void Idle_Tick(object sender, EventArgs e) {
      this.Close();
    }

    void Idle_PreProcessInput(object sender, PreProcessInputEventArgs e) {
      mIdle.IsEnabled = false;
      mIdle.IsEnabled = true;
    }
  }
Run Code Online (Sandbox Code Playgroud)