2012-06-19 4 views
-1

J'essaie de développer un programme qui a la possibilité de s'adapter à la résolution de l'écran de l'utilisateur.Obtenir une taille de UIElement après l'initialisation

J'utilise MVVM avec le pushbinding de Meleak pour obtenir la taille réelle de mon MainWindow:

Getting Window Properties in ViewModel

Pour positionner mon objet, je me sers GridRow et GridColumn. Maintenant, j'essaie d'optimiser cette taille, pour cela j'ai besoin d'obtenir le ActualSize de mon autre UIElment, mais comme leur taille dépend de leur contenu, je ne sais pas comment je peux obtenir leur taille, j'essaye avec une reliure onewaytosource mais j'obtiens une taille de 0.0 et n'est évidemment pas la taille après l'initialisation.

+0

J'ai édité votre question à ce que je pense que vous essayiez de dire, je pense que vous devrez ajouter plus de détails cependant. –

+0

Oui, je pose cette question un peu trop vite, désolé pour cela. – Gat

+1

@Gat: Vous avez un exemple de code pour ce que vous essayez de faire? –

Répondre

0

L'événement Loaded peut être utilisé pour mesurer le ActualHeight d'un objet visuel.

Si cela est utilisé sur la fenêtre comme ci-dessous, le contenu interne doit tous être rendu et être disponible pour vous de référence.

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    var temp = this.ActualHeight; 
} 

Dans cet exemple, je trouve ActualHeight de la fenêtre, mais vous pouvez l'utiliser pour tout objet dans la fenêtre.

Si vous avez des fenêtres/vues imbriquées, l'événement Loaded est également disponible.

Questions connexes