2010-09-09 6 views
3

Le problème?Comment obtenir les dimensions d'un élément WPF au moment de l'exécution sans les spécifier au moment de la compilation

<UI:PanelBrowser Margin="12,27,12,32"></UI:PanelBrowser> 

WPF est ridicule que les propriétés ne pas spécifier manuellement (telles que la largeur et la hauteur) dans ce cas les amène à avoir les valeurs Doulbe.NaN. Le problème est que j'ai besoin de connaître ce numéro. Je ne vais pas définir manuellement une largeur et une hauteur dans le code XAML car cela l'empêche de redimensionner.

Étant donné la partie XAML ci-dessus (cet objet est une sous-classe simple du contrôle Border), comment puis-je obtenir les valeurs des propriétés Width et Height à l'exécution?

Edit:

Wow, je me sens ridicule. J'ai lu environ ActualWidth et ActualHeight, mais ils revenaient systématiquement 0 et 0 pour moi. La raison en est que j'ai testé ces propriétés dans le constructeur de l'élément Framework, avant qu'elles ne soient réellement initialisées. J'espère que cela aide quelqu'un qui se heurte au même problème et qui teste les erreurs. :)

Répondre

1

Vous pouvez utiliser les propriétés ActualWidth et ActualHeight pour obtenir les valeurs de largeur et de hauteur lors de leur dessin.

1

La classe WPF FrameworkElement fournit deux DependencyProperties à cette fin: FrameworkElement.ActualWidth et FrameworkElement.ActualHeight obtiendront la largeur et la hauteur rendues au moment de l'exécution.

Questions connexes