WPF:如果宽高比 > 16:9 则拉伸矩形,否则缩放

WPF: Stretch rectangle if aspect ratio > 16:9, scale otherwise

我正在尝试将一个矩形放入 window 的网格中,该网格会定期更改大小。我使用的不是绝对值,而是比率。

因此,相对于 window/grid:

,矩形可能具有三种状态

This image explains it a lot clearer

我正在寻找一种解决方案,它不涉及更改 XAML 以外的代码(因此 .cs 文件中没有任何内容),除非别无他法。不过,我确实尝试使用 C# 代码找到解决方案:

RectName_OnSizeChanged(object sender, SizeChangedEventArgs) {
    RectName.MaxHeight = 9/16 * RectName.Width;
}

但它似乎不起作用。 (那是为什么,这是我的额外问题)

这个怎么样:

<Grid Background="CornflowerBlue" SizeChanged="ParentSizeChanged">
    <Rectangle x:Name="theRect" Fill="Blue" HorizontalAlignment="Left" VerticalAlignment="Bottom" />
</Grid>

还有这个:

private void ParentSizeChanged(object sender, SizeChangedEventArgs e)
{
    var parent = sender as FrameworkElement;
    if (parent == null)
        return;
    theRect.Width = parent.ActualWidth;
    theRect.Height = Math.Min(parent.ActualHeight, parent.ActualWidth * 6 / 9);
}