Вам может потребоваться сохранить DispatcherTimer с истекшим временем 100 мс (или более) и сохранить время активности пользователя (DateTime.Now из уровня PreviewMouseDown уровня RootWindow) и постоянно проверять его в DispatcherTimer относительно предварительно определенного времени бездействия.
Обновление: поскольку PreviewEvents не в Silverlight, вам необходимо написать свою собственную логику вокруг системы ввода вашего приложения по-своему.Но в WPF есть previewEvents, поэтому отслеживать активность в WPF будет проще, чем silverlight.