c# - tutorial - Cómo hacer que WPF Window se autosize al contenido y no más
wpf tutorial español (1)
Necesita usar la propiedad SizeToContent, revise el enlace msdn a continuación.
https://msdn.microsoft.com/en-us/library/system.windows.window.sizetocontent(v=vs.110).aspx
Tengo un cuadro de diálogo que contiene 2 TextBlocks, una barra de progreso y un botón de cancelar.
Aquí está el XAML:
Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication4"
mc:Ignorable="d"
Title="MainWindow" Height="Auto" Width="200">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="txtFirst" Grid.Row="0" Margin="5" TextWrapping="Wrap">This is a really really really really long string that wraps</TextBlock>
<TextBlock x:Name="txtSecond" Grid.Row="1" Margin="5" Text="A Shorter string" TextWrapping="Wrap" MaxWidth="200"/>
<ProgressBar x:Name="prgProgress" Grid.Row="2" Margin="5" Height="20" />
<Button x:Name="btnCancel" Grid.Row="3" Margin="5" Height="25" Width="50"/>
</Grid>
Me gustaría que la Ventana no tenga una altura fija, pero ajuste automáticamente su altura según el tamaño de sus hijos y no más, pero no veo la manera de hacerlo. En el momento en que no asigno nada a la altura de la ventana, parece adoptar una altura que es mucho mayor que el contenido. ¿No estoy seguro de por qué o de dónde obtiene el valor de altura? Si configuro Windows Height = "Auto" obtengo lo mismo. Todas las alturas para RowDefinitions están configuradas en "Auto", lo que tomo en el sentido de ''configurar la altura de fila para que sea la altura de fila de niño''.
Muchas gracias de antemano por cualquier ayuda.