J'essaie de déboguer certains problèmes avec des tabulations manquantes/supplémentaires. Y a-t-il une sorte d'événement global auquel je peux attacher pour que je puisse enregistrer quel élément s'est focalisé chaque fois que le focus change? Merci! Voici ce que je fais en ce moment, ce qui fonctionne assez bien, mais je suis toujours curieux de savoir s'il y a une autre façon:Obtention d'une notification lorsque le focus change dans 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 + ")"));
}
}
Il n'existe aucun moyen d'utiliser la fonction AddHandler. Vous pouvez this.GotFocus + = .... mais cela n'a pas semblé fonctionner pour moi à moins que j'aie ajouté le gestionnaire dans le xaml. AddHander est vraiment utile pour les événements de souris car vous pouvez attraper des événements déjà gérés! –