我需要一个方形的容器,但它必须尽可能大,但不能超过父级。
我尝试了从这里选择的答案: WPF dynamic layout: how to enforce square proportions (width equals height)?
但它会创建一个比父级更大的正方形,我需要的是一个适合父级的正方形(就像放入图像Stretch = Uniform时一样)。
答案 0 :(得分:1)
您可以尝试这样的事情:
<Grid x:Name="outer" Background="Cyan" Width="200" Height="400">
<Grid Background="Red" HorizontalAlignment="Stretch" Height="{Binding Path=ActualWidth, ElementName=outer}">
</Grid>
</Grid>
答案 1 :(得分:1)
我找到了一种方法,可以使用resetpw
和MaxWidth
使广场小于父广场。
MaxHeight
父<Grid Background="Blue">
<Grid Background="Red"
MaxWidth="{Binding ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType=Grid}}"
MaxHeight="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType=Grid}}">
</Grid>
</Grid>
适合整个屏幕,而子Grid
即使在旋转时也保持其宽高比。
编辑:
或者只使用Grid
ViewBox
您可以通过更改内部<Grid Background="Blue">
<Viewbox Stretch="Uniform">
<Grid Background="Red" MinWidth="1" MinHeight="1">
</Grid>
</Viewbox>
</Grid>
的{{1}}和MinWidth