Lorsque vous dessinez une mise en page sur une page Web, utilisez CSS, il peut y avoir des dizaines de règles, dispersées à travers des dizaines de fichiers, pouvant éventuellement influencer la manière dont un élément est réellement affiché. C'est pourquoi les explorateurs DOM sont des outils critiques si critiques - je peux sélectionner un élément sur un navigateur et voir exactement ce que les règles CSS sont appliquées à celle-ci. P>
Dans WPF, il peut encore y avoir de nombreuses règles - styles et modèles et attributs intégrés et paramètres injectés à partir du code-derrière - qui pourrait éventuellement interagir pour déterminer comment un élément donné est affiché. P>
Y a-t-il un moyen pour moi de regarder un élément, dites un ComboBox, et de déterminer rapidement exactement pourquoi il dessine trois fois plus grand que je pense qu'il devrait? P>
3 Réponses :
Personnellement, j'utilise Snoop. Je ne connais pas la taupe, mais j'ai entendu dire que c'est "mieux" (subjectif), bien que ce ne soit pas gratuit. Il y a une astuce pour travailler avec Snoop cependant, si vous avez une fenêtre créée qui n'est pas la fenêtre principale, vous pouvez la cibler en effectuant une souris Ctrl + Maj + Mouseover (qui cible réellement le contrôle visuel actuel). Cela m'a pris un moment pour comprendre et savoir que c'est super utile! P>
Cela me laissa parcourir l'arbre et les attributs de chaque élément. Mais cela ne m'a pas beaucoup aidé avec la recherche de la source de chaque attribut. E.G., je peux voir que mon ComboBox a une humeur réelle de 40 ans, et un rendez-vous de 200,40, mais je ne dis pas pourquoi il a une expérience réelle de 40.
@Jeff Dege: Source de valeur. En outre, vous pouvez cliquer avec le bouton droit de la souris et sélectionnez "Delve" sur une propriété. Je ne peux pas vraiment indiquer quelle est la question que vous rencontrez est, mais ces deux outils sont ce dont vous avez besoin. N'hésitez pas à poster le code et à demander de l'aide dans une question séparée.
Un outil gratuit que j'utilise de temps en temps est snoop . C'est bon pour des choses simples mais peut s'écraser sur des choses complexes p>
La disposition de position / taille des visuels WPF n'est pas calculée en fonction de certains règles de règles déclaratives de la manière de CSS. La mise en page WPF se produit à l'aide de code impératif et il n'est donc pas possible de savoir de regarder le démarrage XAML ou l'arborescence visuelle résultante comment elle a été réalisée. p>
Un contrôle de conteneur tel que StackPanel utilise un code impératif pour mettre en place les enfants de la manière empilée attendue. Parce que nous savons comment cela fonctionnera, il est facile de penser que cela est donc facile de savoir à l'avance. Mais que se passe-t-il si vous créez un contrôle personnalisé qui décide des contrôles de mise en page de manière totalement aléatoire? Vous ne pourriez jamais être capable de montrer comment le résultat final a été atteint. P>