我试图在窗口中的网格中放置一个矩形,该矩形会定期更改大小。我不是使用绝对值,而是使用比率。
因此,矩形相对于窗口/网格可能具有三种状态:
This image explains it a lot clearer
我正在寻找一种解决方案,除非没有其他方法,否则不涉及更改XAML以外的代码(因此.cs文件中没有内容)。我确实尝试过使用C#代码找到解决方案:
RectName_OnSizeChanged(object sender, SizeChangedEventArgs) {
RectName.MaxHeight = 9/16 * RectName.Width;
}
但是它似乎不起作用。 (那是为什么,这是我的奖金问题)
答案 0 :(得分:0)
如何?
<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);
}