0

WPF プロジェクトが非アクティブであることを検出しています。私はこのコードを使用しています。

 readonly DispatcherTimer activityTimer;


    public MainWindow()
    {
        InitializeComponent();

        InputManager.Current.PreProcessInput += Activity;

        activityTimer = new DispatcherTimer
        {
            Interval = TimeSpan.FromSeconds(5),
            IsEnabled = true
        };
        activityTimer.Tick += Inactivity;

    }

    #region
    void Inactivity(object sender, EventArgs e)
    {


        FrameBody.Source = new Uri("Pages/Body.xaml", UriKind.Relative);


    }

    void Activity(object sender, PreProcessInputEventArgs e)
    {
        activityTimer.Stop();
        activityTimer.Start();


    }
    #endregion

動作しますが、問題が 1 つだけあります。ユーザーがシステムで何もしない場合、フレームのソースが変更されます FrameBody.Source = new Uri("Pages/Body.xaml", UriKind.Relative); ただし、フレームの最近のソースにも移動します。

私のシステムでは、Frame で 1 つのウィンドウを使用しています。そして、そのフレームのソースは、ユーザーのシステムとの対話に応じて変化します。(ex. ユーザーがボタンをクリックすると、そのフレームのソースが変化し、数秒/分のマウスのクリックまたは突然の動きがない場合、フレームのソースが変化します。)

私のコードの何が問題なのか誰か教えてもらえますか? 上記のコードは、このWPF の非アクティブとアクティビティに基づいています

4

0 に答える 0