2008-12-24 16 views
5

Mam 2 elementy karty. W zakładce nr 1 mam kontrolkę, która odpowiada zdarzeniu zmiany rozmiaru okna i trzeba wywołać PointToScreen().Skąd wiadomo, że kontrolka WPF jest renderowana?

Problem polega na tym, że karta nr 2 jest aktywna i zmieniam rozmiar okna, kontrolka na karcie nr 1 reaguje i kończy się niepowodzeniem, ponieważ jej "obraz nie jest renderowany i pojawia się" Ten obraz nie jest połączony z wyjątkiem prezentacyjnym "Prezentacja" .

Czy wiesz, jak sprawdzić tę sprawę, zanim zadzwonię do PointoScreen?

Dzięki Ariel

Odpowiedz

13

Można sprawdzić "IsVisible" - nie odpowiada to skrótowi do porównywania właściwości widoczności, ale także informuje, czy obiekt jest renderowany na ekranie. Nie jestem do końca pewien, jak to działa w wirtualizacji UIElements, ale myślę, że jest właściwie świadomy tych scenariuszy.

+0

Jest to oczywiste, ale bardzo pomocne. Dzięki! –

0

Sposób chciałbym wykonać to w kodzie tyłu, dodawać i usuwać obsługi zdarzeń w oparciu wybiera zakładkę. Po wybraniu Tab1, wykonaj AddHandler na formancie dla zdarzenia zmiany rozmiaru okna, a gdy karta 1 jest niezaznaczona (tzn. Inna karta znajduje się z przodu), wykonaj operację RemoveHandler dla formantu.

Powiązane problemy