wpf - tutorial - Altura de la ventana="Auto" no funciona como se esperaba
wpf vs winforms (3)
Lo que estoy tratando de hacer es mostrar una ventana, que no tiene explícitamente una altura / anchura (ambos valores se omiten o se establecen en Auto
). Supuse que la ventana descubriría su tamaño mediante el cálculo automático de todos los tamaños de controles de usuario contenidos, ¡pero en realidad esto no funciona!
En su lugar, Actualwidth
una ventana grande con los valores Actualwidth
y Actualheight
, ambos 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).
Bueno, no puede establecer la altura de la ventana en automático, para hacer esto puede usar un pequeño truco, nombrar el contenedor principal de la cuadrícula, establecer su altura en automático y luego vincular la altura de la ventana a la altura de la cuadrícula principal
Establezca la propiedad SizeToContent to "WidthAndHeight"
la ventana SizeToContent to "WidthAndHeight"
. Esto debería ayudar.
Pregunta antigua pero una respuesta actualizada:
Como @ Muad''Dib sugirió en su respuesta:
debe establecer 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. Por lo tanto, debe tener en cuenta:
MaxWidth="600"
MaxHeight="400"