2011-12-21 6 views
8

Cuando estoy dibujando un diseño en una página web, usando CSS, puede haber docenas de reglas dispersas en docenas de archivos que podrían influir en cómo se muestra realmente un elemento. Por eso, los exploradores de DOM son herramientas tan importantes: puedo seleccionar un elemento en un navegador y ver exactamente qué reglas CSS se le están aplicando.¿Hay un WPF equivalente a un explorador DOM?

En WPF, también puede haber muchas reglas (estilos y plantillas y atributos en línea y configuraciones inyectadas desde el código subyacente) que posiblemente podrían interactuar para determinar cómo se muestra un elemento determinado.

¿Hay alguna manera de ver un elemento, por ejemplo un ComboBox, y determinar rápidamente por qué dibuja tres veces más alto de lo que debería?

Respuesta

6

Personalmente, yo uso Snoop. No estoy familiarizado con Mole, pero escuché que es "mejor" (subjetivo), aunque no es gratis. Sin embargo, hay un truco para trabajar con Snoop, si tiene una ventana creada que no es la ventana principal, puede apuntarla haciendo Ctrl + Shift + MouseOver (que en realidad apunta al control visual actual). Esto me tomó un tiempo descubrirlo, ¡y saber que es súper útil!

+0

Eso me permite explorar el árbol y los atributos de cada elemento. Pero no me está ayudando mucho a encontrar la fuente de cada atributo. Por ejemplo, puedo ver que mi ComboBox tiene una Altura real de 40, y un Tamaño de representación de 200,40, pero no digo por qué tiene una Altura real de 40. –

+0

@Jeff Dege: Fuente de valor. Además, puede hacer clic derecho y seleccionar "Delve" en una propiedad. Realmente no puedo decir cuál es el problema que tienes, pero estas dos herramientas son lo que necesitas. Sin embargo, no dude en publicar el código y pedir ayuda en otra pregunta. –

0

Una herramienta gratuita que uso de vez en cuando es Snoop. Es bueno para cosas simples, pero puede fallar en cosas complejas

0

El diseño de posición/tamaño de las imágenes WPF no se calcula según algún conjunto declarativo de reglas en la forma de CSS. El diseño de WPF se produce utilizando un código imperativo y, por lo tanto, no es posible saber, al mirar el XAML inicial o el árbol visual resultante, cómo se logró.

Un control de contenedor como StackPanel utiliza un código imperativo para distribuir los elementos de la manera apilada esperada. Debido a que sabemos cómo funcionará, es fácil pensar que esto es fácil de saber de antemano. Pero, ¿qué sucede si crea un control personalizado que decide los controles de diseño de forma completamente aleatoria? Nunca podría ser capaz de mostrar cómo se logró el resultado final.

Cuestiones relacionadas