누락/추가 탭 정지와 관련된 문제를 디버그하려고합니다. 포커스가 바뀔 때마다 포커스가있는 요소를 기록 할 수 있도록 연결할 수있는 일종의 글로벌 이벤트가 있습니까? 감사! 여기에 내가 충분히 잘 작동하는, 지금 뭘하는지,하지만 다른 방법이 있는지에 여전히 궁금 :Silverlight 4에서 포커스가 변경 될 때 알림 받기?
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(0.2);
timer.Tick += onTick;
timer.Start();
// ...
private object LastFocusedElement;
private void onTick(object sender, EventArgs e)
{
object elem = FocusManager.GetFocusedElement();
if(LastFocusedElement != elem)
{
LastFocusedElement = elem;
System.Diagnostics.Debug.WriteLine("+++FOCUS+++ Focus changed to: " + elem + (elem == null ? "" : " (" + elem.GetType().Name + ")"));
}
}
AddHandler 기능을 사용할 방법이 없습니다. 할 수 있습니다 this.GotFocus + = ....하지만 xaml에 처리기를 추가하지 않으면 그것은 나를 위해 작동하지 않았다. AddHander는 마우스 이벤트에 유용합니다. 이미 처리 된 이벤트를 잡을 수 있습니다! –