Я пытаюсь отладить некоторые проблемы с отсутствующими / дополнительными остановками табуляции.Есть ли какое-то глобальное событие, к которому я могу присоединиться, чтобы можно было регистрировать, какой элемент получил фокус при изменении фокуса?Спасибо!Вот что я делаю сейчас, и это работает достаточно хорошо, но мне все еще интересно, есть ли другой способ:
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 + ")"));
}
}