我想在 XAML 中有一个具有相等宽度和高度的 FrameworkElement,适合(或填充)其父级,无需将宽度和高度硬编码为特定值,适用于 Windows Store 8 和 Windows Phone 8(不一定是相同的解决方案)。
出于本示例的目的,我将使用<Image/>
,但它可以是任何 FrameworkElement。
我尝试了以下方法,它将根据父级的宽度制作一个 FrameworkElement 正方形。但是我无法根据父母的高度和宽度之间的“最小”(或最大值)值使其平方。
<Grid x:Name="LayoutRoot">
<Image
Height="{Binding ActualWidth, ElementName=LayoutRoot, Mode=OneWay}"
HorizontalAlignment="Stretch"
/>
</Grid>
我尝试了以下操作,但据说它只是缩放而不是实际调整 FrameworkElement 的大小。高度和宽度仍将是“1”:
<ViewBox Stretch="Uniform">
<Image
Height="1"
Width="1"
/>
</ViewBox>
我听说过<MultiBinding/>
(仅适用于 Windows Store 8,而不是 Windows Phone 8),但无法编写方形行为。