Window Height="Auto" no funciona como se esperaba
Lo que estoy tratando de hacer es mostrar una ventana que no tiene explícitamente una altura/ancho (ambos valores se omiten o se establecen en Auto
). Estaba suponiendo que la ventana descubriría su tamaño calculando automáticamente todos los tamaños de los controles de usuario contenidos, ¡pero esto en realidad no funciona!
En lugar de eso, aparece una ventana grande con valores Actualwidth
y Actualheight
configurados en 512 (?!?!)
Declaración de ventana:
<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>
Mostrando esta ventana como un diálogo a través de:
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
¿Existe alguna solucion para esto? No quiero establecer explícitamente el tamaño de mi ventana porque muchos controles en el formulario se contraerán según los parámetros del constructor, y tratar de encontrar el tamaño real del formulario sería complicado (y feo).
Establece la propiedad de la ventana SizeToContent="WidthAndHeight"
. Esto debería ayudar.
Antigua pregunta pero una respuesta actualizada:
Como sugirió @Muad'Dib en su respuesta:
deberías configurar SizeToContent="WidthAndHeight"
.
Si el tamaño del contenido de la ventana aumenta más que el tamaño de la pantalla, la ventana puede desbordarse de la pantalla. Entonces, debes considerar:
MaxWidth="600"
MaxHeight="400"