Ce que j'essaie de faire, c'est d'afficher une fenêtre, qui n'a pas explicitement de hauteur / largeur (les deux valeurs sont omises ou définies sur Auto
). Je devinais que la fenêtre découvrirait sa taille en calculant automatiquement toutes les tailles de contrôles utilisateur contenus, mais cela ne fonctionne pas vraiment!
Au lieu de cela, j'obtiens une grande fenêtre avec Actualwidth
et les Actualheight
valeurs sont toutes deux définies sur 512 (?!?!)
Déclaration de fenêtre:
<Window x:Class="Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window3"
Height="Auto">
<StackPanel>
<Label>Window</Label>
</StackPanel>
</Window>
Affichage de cette fenêtre sous forme de dialogue via:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Dim dlg As New Window3
dlg.ShowDialog()
End Sub
Y a-t-il une solution à cela? Je ne veux pas définir explicitement la taille de ma fenêtre car de nombreux contrôles du formulaire seront réduits en fonction des paramètres du constructeur, et essayer de trouver la taille réelle du formulaire serait délicat (et moche).
.WindowStartupLocation
réglage sur"CenterScreen"
Réponses:
Définissez la propriété de la fenêtre
SizeToContent="WidthAndHeight"
. Cela devrait aider.la source
SizeToContent="WidthAndHeight"
;)Height="Auto"
etWidth="Auto"
n'accomplit pas la même chose? Je suppose que le contenu de la fenêtre n'est pas pris en compte avec ces paramètres.Ancienne question mais une réponse mise à jour:
Comme l'a suggéré @ Muad'Dib dans sa réponse:
vous devez définir
SizeToContent="WidthAndHeight"
.Si la taille du contenu de la fenêtre augmente plus que la taille de l'écran, la fenêtre peut déborder de l'écran. Donc, vous devez considérer:
la source
MaxHeight="400"
n'est pas respecté? ça pousse jusqu'à la limite d'écran?Eh bien, vous ne pouvez pas définir la hauteur de la fenêtre sur auto, pour ce faire, vous pouvez utiliser une petite astuce, nommer le conteneur de la grille principale principale, définir sa hauteur sur auto puis lier la hauteur de la fenêtre à la hauteur de la grille principale
la source
Définir la taille dans l'écran actuel avec des fenêtres d'événements chargées
la source