Dans WPF, comment puis-je déterminer si un contrôle est visible pour l'utilisateur?

Je suis l'affichage d'un très grand arbre avec beaucoup d'éléments qu'il contient. Chacun de ces éléments présente des informations à l'utilisateur par le biais de ses associés contrôle UserControl, et cette information doit être mise à jour toutes les 250 millisecondes, ce qui peut être très coûteux de tâche depuis que je suis également utiliser la réflexion pour l'accès à certaines de leurs valeurs. Ma première approche a été d'utiliser la IsVisible de la propriété, mais il ne fonctionne pas comme je l'espérais.

Est-il possible de déterminer si un contrôle est "visible" pour l'utilisateur?

Note: je suis déjà à l'aide de la IsExpanded propriété d'ignorer la mise à jour s'est effondré nœuds, mais certains nœuds ont+ de 100 éléments et ne peut pas trouver un moyen d'ignorer ceux qui sont à l'extérieur de la grille de la fenêtre d'affichage.

  • Une fois, j'ai eu un problème similaire. Après avoir écrit le code pour détecter si un contrôle est visible, il s'est avéré que le code pour détecter a été plus lente qu'en fait la mise à jour du contrôle caché. Comparer vos résultats, car il pourrait ne pas être en vaut la peine.
InformationsquelleAutor Trap | 2009-10-04