visual tutorial studio descargar arquitectura wpf

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"