Wenn ich ein Layout auf einer Webseite unter Verwendung von CSS zeichne, kann es Dutzende von Regeln geben, die über Dutzende von Dateien verteilt sind, die möglicherweise beeinflussen könnten, wie ein Element tatsächlich angezeigt wird. Deshalb sind die DOM-Explorer so kritische Werkzeuge - ich kann ein Element in einem Browser auswählen und genau sehen, welche CSS-Regeln darauf angewendet werden.
In WPF gibt es wieder viele Regeln - Stile und Vorlagen und Inline-Attribute und Einstellungen, die aus dem Code-Behind injiziert werden -, die möglicherweise interagieren können, um zu bestimmen, wie ein bestimmtes Element angezeigt wird.
Gibt es eine Möglichkeit für mich, ein Element zu betrachten, sagen wir eine ComboBox, und schnell zu bestimmen, warum es dreimal so groß ist, wie ich es eigentlich sollte?
Persönlich benutze ich Snoop. Ich bin mit Mole nicht vertraut, aber ich habe gehört, dass es "besser" (subjektiv) ist, obwohl es nicht frei ist. Es gibt jedoch einen Trick beim Arbeiten mit Snoop. Wenn Sie ein Fenster erstellt haben, das nicht das Hauptfenster ist, können Sie es mit Strg + Shift + MouseOver (das tatsächlich auf das aktuelle visuelle Steuerelement abzielt) anvisieren. Das hat mich eine Weile gebraucht, um herauszufinden, und zu wissen, dass das sehr nützlich ist!
Das Positions- / Größenlayout von WPF-Visuals wird nicht gemäß einem deklarativen Regelsatz in der Art von CSS berechnet. Das WPF-Layout wird mit imperativem Code erstellt. Daher ist es nicht möglich, anhand des Starts von XAML oder des daraus resultierenden visuellen Baums zu sehen, wie es erstellt wurde.
Ein Container-Steuerelement wie das StackPanel verwendet imperativen Code, um die untergeordneten Elemente in der erwarteten gestapelten Weise zu erstellen. Weil wir wissen, wie es funktioniert, ist es leicht zu glauben, dass dies im Voraus leicht zu wissen ist. Was aber, wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das völlig willkürlich zu Steuerelementen für das Layout passt? Sie könnten niemals zeigen, wie das Endergebnis erreicht wurde.