Обнаружить незанятое приложение Silverlight - PullRequest
4 голосов
/ 04 августа 2010

Какой самый простой способ в Silverlight обнаружить, что пользователь не активен?то есть без ввода мышью и клавиатуры в течение определенного периода времени.

Я пытался отслеживать события мыши, клавиатуры и события фокуса корневого визуала, но этого недостаточно.Например, может быть открыто всплывающее окно, и эти события не достигнут корневого визуала.

Может быть, решение javascript?

И тогда возникает другая проблема.Когда приложение бездействует, я бы хотел, чтобы оно выглядело серым (точно так же, как поведение ChildWindow).И я бы хотел, чтобы это выглядело так, даже если в данный момент открыто ChildWindow или просто всплывающее окно.

1 Ответ

0 голосов
/ 04 августа 2010

Вы уверены, что дочернее окно не всплывает? Это перенаправленное событие ... я этого не осознавал.

Если нет, просто создайте контракт, например:

ILastActivity : INotifyPropertyChanged 
void Touch();
DateTime LastActivity { get; private set; }

Тогда вы можете создать прикрепленное поведение, базовый класс или использовать любой другой механизм, чтобы просто зарегистрировать ключевые события в ваших представлениях. Все они будут вызывать «Touch» при срабатывании, а ваш таймер проверяет LastActivity, чтобы определить его. Может быть, это то, что вы можете сделать со сверстниками автоматизации, стоит посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...