Вот так я делаю простую обработку в XAML
DispatcherTimer timerIdle;
private void OnLoaded(object sender, RoutedEventArgs e)
{
//Create our idle timer.
timerIdle = new DispatcherTimer
(
TimeSpan.FromMinutes(1),
DispatcherPriority.ApplicationIdle,
(s, b) => {
timerIdle.Stop();
*************SOME FUNCTION HERE*****************
},
Application.Current.Dispatcher
);
//Start the timer here
timerIdle.Start();
}
private void OnMouseMove(object sender, MouseEventArgs e)
{
if(!timerIdle.IsEnabled)
timerIdle.Start();
}