2009-09-25 3 views
2

En studio visuel, lorsque vous faites glisser un contrôle de la boîte à outils vers la zone de conception, VS définit automatiquement la largeur et la hauteur du contrôle avec certaines valeurs. Savez-vous comment ça marche? Je me doutais qu'il y avait un certain type d'attributs pour les propriétés Largeur et Hauteur ou même la classe elle-même, mais ne pouvait rien trouver de refléter le contrôle de bouton.Comment Visual Studio définit-il les tailles pour les contrôles WPF?

Répondre

0

Je ne l'ai pas encore trouvé en utilisant un réflecteur, du moins pas dans la classe Button. Quand j'ajoute un bouton en utilisant xaml, cela prendra de l'espace disponible. Lorsque j'ajoute un en utilisant le concepteur, sa hauteur est fixée à 23.

this articlethis article décrit la création d'un contrôle avec des valeurs par défaut à utiliser dans la boîte à outils, je suppose que les éléments de la boîte à outils sont faits de la même manière.

1

En fait, il n'y a pas de magie, le VS devrait faire pour acquérir ces valeurs par défaut. Ma conjecture, il permet à toutes les passes de mise en page pour terminer, puis copie simplement les valeurs des propriétés ActualWidth et ActualHeight.

Google un peu sur le but de MeasureOverride et ArrangeOverride méthodes, passes de mise en page, etc. Gardez à l'esprit que les valeurs par défaut réelles des propriétés de dépendance sont spécifiées par leurs métadonnées, soit avec leur enregistrement, soit en les remplaçant dans les sous-classes. Je crois que cette valeur par défaut pour les propriétés Width et Height est la valeur double.NaN.

Questions connexes