WPF: Создание MinWidth / MinHeight дочерних элементов для ограничения окна

У меня есть окно WPF, которое содержит UserControl с MinWidth и MinHeight. Как я могу запретить пользователю изменять размер окна до точки, при которой нарушается минимальный размер этого UserControl?

Вот упрощенная версия окна, над которым я работаю. Мое настоящее приложение ' s UserControl здесь заменяется рамкой:

<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>

Если я уменьшу окно до достаточно маленького размера, правый и нижний края границы обрежутся. Я хочу, чтобы окно не стало таким маленьким - я хочу, чтобы минимальный размер моего окна был точно такой, в которой граница находится на минимальном размере . Некоторые платформы (например, Delphi VCL) автоматически объединяют минимальные размеры дочерних элементов управления вплоть до окна; Я ожидал, что WPF сделает то же самое, но очевидно, что это не так.

Я всегда мог явно установить MinWidth и MinHeight окна, но чтобы вычислить их правильно, мне пришлось бы учитывать ActualHeight кнопок, что означало бы ожидание хотя бы один проход макета (или вызов меры вручную). Грязный.

Есть ли лучший способ предотвратить слишком маленькое изменение размера окна для его содержимого?

6
задан Joe White 8 March 2011 в 04:38
поделиться