Poprzedni znajdziesz tu:
WPF Visualizer – Wizualizacja drzewa obiektów (Visual Tree)
W kolejce czeka jeszcze XAMLSpy
W poprzednim poście opowiedzieliśmy sobie nieco o funkcjonalności samego Visual Studio w kwestii wizualizacji drzewa obiektów WPF. Myślę, że nie pozostawiłem też cienia wątpliwości jak mało przydatna jest to funkcja. Dziś coś dużo bardziej użytecznego.
Panie i Panowie, oto Snoop
Jest to malutki program (cały katalog zajmuje mniej niż 1,3 MB) o wielki możliwościach. Zawsze mam go pod ręką i nie raz pomógł zrozumieć co się dzieje w układzie okna.
Snoop zapoczątkował Pete Blois, jednak dziś jest to w pełni otwarty kod który możecie znaleźć na Codeplex lub na GitHub (‘Team Snoop’, który w teorii zarządza kodem Snoop synchronizuje oba repozytoria) i mimo, że nie rozwijany od ponad roku, wciąż jest bardzo wartościowym narzędziem.
Do sedna. Co możemy z tym zrobić ?
Na potrzeby tego posta przygotowałem bardzo proste okienko, zawierające trzy pola tekstowe i przycisk:
Uruchamiamy Snoop i przeciągamy celownik znajdujący się obok przycisku lornetki na interesującą nas aplikację.
Po chwili otworzy się nowe okienko zawierające pełną analizę drzewa naszego widoku.
Co my tu mamy:
– z lewej pełne drzewo obiektów widoku (z wyszukiwarką i podglądem po najechaniu kursorem myszy, możemy też wcisnąć Ctrl+Shift na klawiaturze i najechać na interesujący nas obiekt w oknie aplikacji)
– zakładkę ‘Properties’ prezentującą właściwości danego obiektu, pokazuje ona zmiany wartości innym kolorem, jak również pozwala zmieniać wartości w trakcie działania programu
– zakładka ‘DataContext’ prezentuje dane związane z aktualnie zdefiniowanym obiektem kontekstu
– zakładka ‘Events’ jak można się domyślić pokazuje historię wywołań zdarzeń powiązanych z obiektem, jak również czy zostały obsłużone, czy nie
– ‘Methods’ pozwala sprawdzić jakie metody udostępnia dany element, jak również wywołać je
– no i na koniec wisienka na torcie, czyli najnowsza funkcjonalności Snoop, zakładka ‘Powershell’. Dzięki niej możecie wykorzystać komendy powershell’a do przeszukiwania i interacji z elementami drzewa wizualnego WPF
Oprócz widoku właściwości Snoop posiada również lupkę, jak i możliwość wyświetlania obiektów w pseudo 3D, czasami przydatne przy bardziej skomplikowanych układach kontrolek.
Na koniec zostawiłem jeszcze jedną perełkę.Nie wiem czy zwróciliście uwagę, w stopce okna Snoop pokazuje aktualne elementy które otrzymały focus.
Małe, a jak cieszy!
Podsumowując.
Uważam Snoop, jako ‘must-have’ programisty pracującego z aplikacjami w WPF. Jest poręczny, stabilny, nie wymaga przerywania działania aplikacji.
I w dodatku jest darmowy!
Nie pozostaje mi nic innego jak rzec, ‘bierzcie i ściągajcie z tego wszyscy’!
Do następnego razu!