2010-08-03 6 views
4

Silverlight에서 사용자가 감지되지 않는 가장 간단한 방법은 무엇입니까? 즉 일정 기간 동안 마우스 입력 및 키보드 입력이 없습니다.Idle Silverlight 응용 프로그램 감지

루트 이벤트의 마우스 이벤트, 키보드 이벤트 및 포커스 이벤트를 모니터링했지만 충분하지 않은 것 같습니다. 예를 들어, 팝업 창이 열려있을 수 있으며 이러한 이벤트는 루트 시각에 도달하지 않습니다.

자바 스크립트 솔루션일까요?

그리고 다른 문제가 있습니다. 응용 프로그램이 유휴 상태 일 때 회색으로 표시하고 싶습니다 (ChildWindow 동작처럼). 그리고 현재 ChildWindow가 열려 있거나 Popup이 간단한 경우에도 이렇게 표시됩니다.

답변

0

어린이 창에 거품이 발생하지 않습니까? 라우트 된 이벤트입니다 ... 몰랐습니다. 그런 다음 첨부 행동, 기본 클래스를 만들 수

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

, 또는 단순히 귀하의 의견에 키 이벤트를 등록하는 다른 메커니즘을 사용

하지, 그냥 같은 계약을 만듭니다. 해고 당하면 모두 "터치"라고하며 타이머가 LastActivity를 검사하여이를 확인합니다. 살펴볼 가치가있는 자동화 동급 업체와 함께 할 수도 있습니다.

+0

문제는 ChildWindow가 'Application.RootVisual' 아래의 시각적 트리에 나타나지 않는다는 것입니다. – AnthonyWJones

+0

Underwind - 따라서 업데이트를 브로드 캐스트하기 위해 childwindow와 통신 할 수있는 계약. –