2011-07-09 16 views
5

Chcę ustawić zdarzenie do uruchomienia, gdy widoczność zostanie zmieniona w kontrolce Canvas WPF.Płaszczyzna WPF WidocznośćZmienione zdarzenie

Próbowałem powyższego, ale to nie działa nikt nie wie, jak to zrobić?

Cheers

+1

To 'VisibleChanged', a nie' VisibileChanged'. Czy to literówka w kodzie lub w pytaniu? – keyboardP

+0

Jeśli był w kodzie, wyobrażam sobie, że kompilator by to zauważył (zakładając, że OP próbował co najmniej raz skompilować, chociaż powiedzenie "to nie działa" oznacza, że ​​zostało skompilowane * i * uruchomione.) – dlev

+0

To prawda, ale Widziałem pytania, w których "to nie działa" odnosi się do niepowodzenia kompilacji. – keyboardP

Odpowiedz

19

UIElement.IsVisibleChanged

Patrzysz na razie IsVisibleChanged, która odnosi się do wszystkich UIElements.


Więcej informacji: IsVisible to właściwość zależności tylko do odczytu. Jest to wartość obliczona, a właściwość Dependency widoczności ma na nią wpływ. To, co powinieneś użyć, aby wykryć, czy UIElement jest widoczny, czy nie. Teraz, jeśli naprawdę chcesz po prostu sprawdzić, czy DP widoczności zmienia się z jakiegoś powodu, jest sposób, aby to zrobić: http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/

Chociaż nadal będę trzymać się tylko śledzenia IsVisibleChanged.

2

normalny obiekt WPF Canvas nie posiada zdarzenie .VisibleChanged, więc nie można przypisać obsługi zdarzeń do niego.

+0

Każde UIElement ma zdarzenie, które zostanie wywołane, gdy zmieni się widoczność. –

Powiązane problemy