Tengo una ventana WPF que contiene un UserControl con MinWidth y MinHeight. ¿Cómo puedo evitar que el usuario cambie el tamaño de la ventana hasta un punto donde se viola el tamaño mínimo de ese UserControl?WPF: Hacer que los elementos secundarios MinWidth/MinHeight restrinjan la ventana
Aquí hay una versión simplificada de una ventana en la que estoy trabajando. Mi verdadero control de usuario de la aplicación se sustituye aquí por un borde:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel>
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
<Button Content="OK"/>
<Button Content="Cancel"/>
</StackPanel>
<Border BorderBrush="Green" BorderThickness="10"
MinWidth="200" MinHeight="150"/>
</DockPanel>
</Window>
Si reducir la ventana lo suficientemente pequeño, el derecho de la Frontera e inferior se cortan. Quiero evitar que la ventana se vuelva tan pequeña: quiero que el tamaño mínimo de mi ventana sea exactamente el punto en el que el borde está en su tamaño mínimo. Algunos marcos (como el Delphi VCL) agregan automáticamente los tamaños mínimos de los controles secundarios hasta la ventana; Esperaba que WPF hiciera lo mismo, pero claramente no es así.
Siempre podría establecer explícitamente MinWidth y MinHeight de la ventana, pero para calcularlos correctamente, tendría que tener en cuenta ButtonHealHeight, lo que significaría esperar al menos un pase de diseño (o llamar a Measure manualmente). Sucio.
¿Hay alguna manera mejor de evitar que la ventana se vuelva demasiado pequeña para su contenido?
Esto funciona perfectamente. –