Marcin Biegała

Marcin Biegała

Dev, motocyklista, marzyciel i miłośnik kawy.

Marcin Biegała

Kilka Minut Czytania

Jest to drugi z małej serii postów traktujących o wizualizacji drzewa obiektów w WPF.
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

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:
Snoop - SampleApp

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:Snoop - MainWindow
– 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ę.Snoop - EventViewNie 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!

 

comments powered by Disqus

Ostatnie Posty

Kategorie

O Mnie

W życiu staram się rozwiązywać problemy ludzi z wykorzystaniem kodu, bądź też przez jego usuwanie ;)
Miałem przyjemność pracować w całym przekroju firm, od mikroskopijnych, przez startup’y, po wielkie banki inwestycyjne i współprowadzenie software house.