使用绑定标记扩展。绑定是 wpf 在此属性(源)更改时更新某些其他属性(目标)的方式。在这种情况下,Grid 的 MinWidth 属性是 Source,而您的窗口的 MinWidth 属性是目标。
<Window x:Class="MinMaxValuesOnWindows.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="600" Width="800"
MinWidth="{Binding ElementName=gridy, Path=MinWidth}"
MinHeight="{Binding ElementName=gridy, Path=MinHeight}"
MaxWidth="{Binding ElementName=gridy, Path=MaxWidth}"
MaxHeight="{Binding ElementName=gridy, Path=MaxHeight}">
<Grid Name="gridy" MinHeight="80" MinWidth="80" MaxHeight="300" MaxWidth="300"/>
</Window>
正如您在主题中提到的,这并不完全有效,但您可以在更新绑定目标之前使用绑定上的转换器来添加窗口框架的高度和宽度(可能需要 PInvoke)。由于我怀疑您的应用程序中的窗框厚度是动态变化的,因此这可能只是一个恒定值(如果用户更改主题,则不一定如此)。