Windows Phone Xaml:强制方形比例容器(aspectratio 1:1)

时间:2015-04-14 06:52:34

标签: xaml windows-phone-8.1

我需要一个方形的容器,但它必须尽可能大,但不能超过父级。

我尝试了从这里选择的答案: WPF dynamic layout: how to enforce square proportions (width equals height)?

但它会创建一个比父级更大的正方形,我需要的是一个适合父级的正方形(就像放入图像Stretch = Uniform时一样)。

2 个答案:

答案 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>

Screenshot

答案 1 :(得分:1)

我找到了一种方法,可以使用resetpwMaxWidth使广场小于父广场。

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

将其用于任何宽高比