2011-12-21 11 views
8

Quando sto disegnando un layout su una pagina web, usando i CSS, ci possono essere dozzine di regole, sparse su dozzine di file, che potrebbero influenzare il modo in cui un elemento viene effettivamente visualizzato. Ecco perché gli esploratori DOM sono strumenti così importanti: posso selezionare un elemento su un browser e vedere esattamente quali regole CSS vengono applicate ad esso.Esiste un equivalente WPF per un DOM explorer?

In WPF, possono ancora esserci molte regole - stili e modelli e attributi e impostazioni inline iniettati dal code-behind - che potrebbero interagire per determinare come viene visualizzato un dato elemento.

C'è un modo per me di guardare un elemento, ad esempio un ComboBox, e di determinare rapidamente esattamente perché si sta disegnando tre volte più alto di quanto penso dovrebbe?

risposta

6

Personalmente, io uso Snoop. Non ho familiarità con Mole, ma ho sentito che è "migliore" (soggettivo), anche se non è gratuito. Tuttavia c'è un trucco per lavorare con Snoop, se hai una finestra creata che non è la finestra principale, puoi mirare con un Ctrl + Shift + MouseOver (che in realtà mira al controllo visivo corrente). Mi ci è voluto un po 'per capire, e sapendo che è super utile!

+0

Questo mi consente di esplorare l'albero e gli attributi di ciascun elemento. Ma non mi sta aiutando molto a trovare la fonte di ciascun attributo. Ad esempio, posso vedere che il mio ComboBox ha un ActualHeight di 40 e un RenderSize di 200,40, ma non dico perché ha un ActualHeight di 40. –

+0

@Jeff Dege: Value Source. Inoltre, puoi fare clic con il tasto destro e selezionare "Delve" su una proprietà. Non posso davvero dire quale sia il problema, ma questi due strumenti sono ciò di cui hai bisogno. Sentiti libero di inserire il codice e chiedere aiuto in una domanda separata però. –

0

Uno strumento gratuito che uso di volta in volta è Snoop. È buono per cose semplici ma potrebbe bloccarsi su cose complesse

0

Il layout di posizione/dimensione delle immagini WPF non viene calcolato in base ad alcune serie di regole dichiarative alla maniera dei CSS. Il layout WPF si verifica utilizzando il codice imperativo e quindi non è possibile sapere dal punto di vista dello XAML iniziale o dell'albero visivo risultante.

Un controllo contenitore come StackPanel utilizza il codice imperativo per impaginare i bambini nel modo impilato previsto. Poiché sappiamo come funzionerà, è facile pensare che sia quindi facile sapere in anticipo. Ma cosa succede se si crea un controllo personalizzato che decide di controllare i layout in modo completamente casuale? Non potresti mai essere in grado di mostrare come è stato raggiunto il risultato finale.

Problemi correlati