2011-07-09 3 views
5

Je souhaite configurer un événement à exécuter lorsque la visibilité est modifiée sur un contrôle WPF Canvas.Événement VisibilityChanged de canevas WPF

canvas1.VisibileChanged += new EventHandler(canvas1_VisibleChanged); 

J'ai essayé ce qui précède mais ça ne marche pas quelqu'un sait comment le faire?

Vive

+1

C'est 'VisibleChanged', pas' VisibileChanged'. Est-ce une faute de frappe dans votre code ou dans la question? – keyboardP

+0

Si c'était dans le code, j'imagine que le compilateur l'aurait remarqué (en supposant que OP ait essayé de compiler au moins une fois.) Bien que dire "ça ne marche pas" implique qu'il a été compilé * et * run.) – dlev

+0

J'ai vu des questions où «cela ne fonctionne pas» fait référence à la compilation échouant. – keyboardP

Répondre

19

UIElement.IsVisibleChanged

Vous êtes à la recherche de l'événement IsVisibleChanged, applicable à tous les UIElements.


Plus d'informations: IsVisible est en lecture seule propriété de dépendance. C'est une valeur calculée et la propriété de dépendance de visibilité l'affecte. C'est ce que vous devez utiliser pour détecter si vous êtes UIElement est visible ou non. Maintenant, il y a une façon de le faire si vous avez vraiment vraiment envie de vérifier juste pour la visibilité DP changer pour une raison quelconque si: http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/

Bien, je serais toujours coller avec juste le suivi IsVisibleChanged.

2

La WPF normale objet Canvas n'a pas un événement .VisibleChanged, vous pouvez donc pas attribuer un gestionnaire d'événements à elle.

+0

Tout UIElement a un événement qui se déclenche lorsque la visibilité change. –