对于给定的宽度,我想实现this http://s19.postimage.org/gza4s6fnn/Untitled.png
我正在构建这个xaml树:
<ContentPresenter x:Name="CardContentPresenter"
Height="{Binding ActualWidth,
ElementName=CardContentPresenter,
Converter={StaticResource WidthToHeightConverter},
Mode=OneWay}"
VerticalAlignment="Center">
<Border x:Name="CardBorder">
<Border x:Name="ContentBorder"
Width="{Binding ActualWidth,
ElementName=CardBorder,
Converter={StaticResource WidthToContentWidthConverter},
Mode=OneWay}"
Height="{Binding ActualHeight,
ElementName=CardBorder,
Converter={StaticResource WidthToContentWidthConverter},
Mode=OneWay}"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Grid>
<ContentPresenter x:Name="CardContentContentPresenter"
Height="{Binding ActualWidth,
ElementName=CardContentContentPresenter,
Converter={StaticResource HeightToWidthConverter},
Mode=OneWay}"
VerticalAlignment="Center">
<Grid />
</ContentPresenter>
</Grid>
</Border>
</Border>
</ContentPresenter>
但正如我可以通过转换器内部的断点看到的,高度/宽度计算的顺序很混乱(例如,内部 - 内部高度在内部宽度之前计算,因此值不正确)。 / p>
如何控制属性计算的顺序?或者整个我的方法是错误的,还有另一种方法来处理它?</ p>