実際のコンテンツ サイズが初期レイアウト パスのコンテンツの MinWidth/MinHeight および MaxWidth/MaxHeight によって強制されないように初期ウィンドウ サイズが設定されている場合 (たとえば、Window.SizeToContent="WidthAndHeight" を使用)、次の式が成り立ちます。 :
Window.ActualSize - Content.ActualSize = 
      Window.MinSize - Content.MinSize = Window.MaxSize - Content.MaxSize.
これらの方程式に基づいて、次のコードを導き出すことができます。
public MainWindow()
{
    InitializeComponent();
    this.SizeChanged += OnWindowSizeChanged;
}
private static void OnWindowSizeChanged(object sender, SizeChangedEventArgs e)
{
    var window = (Window)sender;
    var content = (FrameworkElement)window.Content;
    window.MinWidth = window.ActualWidth - content.ActualWidth + content.MinWidth;
    window.MaxWidth = window.ActualWidth - content.ActualWidth + content.MaxWidth;
    window.MinHeight = window.ActualHeight - content.ActualHeight + content.MinHeight;
    window.MaxHeight = window.ActualHeight - content.ActualHeight + content.MaxHeight;
    window.SizeChanged -= OnWindowSizeChanged;
}
最初のレイアウト パスの後にコードを 1 回だけ実行する必要があるため、純粋な宣言型アプローチを使用してこれを効率的に達成する方法がわかりません。