2013-02-25 10 views
5

Chciałbym wiedzieć, jak dowiedzieć się, kiedy kontrola jest visbile dla użytkownika, a kiedy nie?Jak ustalić, kiedy kontrola jest widoczna dla użytkownika?

Powiedzmy, że piszę niestandardową kontrolkę, która rozszerza TextBox i chciałbym wiedzieć, kiedy jest widoczny, aby zrobić niestandardową logikę wewnątrz obsługi wyzwalanej na widocznej zmianie.

Jak to zrobić? Jak ustalić, czy kontrola jest widoczna dla użytkownika, czy nie? Sterowanie niestandardowe, które rozszerza TextBox może być na przykład na Button i Button może otrzymać Visibility.Collapsed, więc wszystkie jego wewnętrzne zagnieżdżone kontrolki będą niewidoczne i to właśnie chcę wiedzieć. Jak ustalić, czy jest widoczna, bez względu na to, jaką wartość ma właściwość Visibility?

Odpowiedz

9

Należy użyć zdarzenia UIElement.IsVisibleChanged. Występuje, gdy wartość zmiany IsVisible jest zależna tylko do odczytu i wskazuje elementy Widoczność w interfejsie użytkownika.
UIElement.LayoutUpdated - zdarzenie, które może zostać użyte do ponownego obliczenia widoczności kontroli.

AKTUALIZACJA. Wydaje się, że jest dokładną kopią:
In WPF, how can I determine whether a control is visible to the user?

+0

edytowany moje pytanie. Nie mówię o właściwości widoczności. Mówię o ogólnej widoczności. Btw twój link do IsVisibleChanged nie działa –

+0

@hedgehog Ok. Teraz widzę, co ci się podoba. Zaktualizowano. –

+0

to tylko metoda, którą muszę wywołać jawnie, aby dowiedzieć się, czy jest widoczna. Chciałbym otrzymać powiadomienie przez WPF, jeśli jest widoczne lub nie. –

Powiązane problemy