这样绑定为什么不行?
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="border" Grid.Row="0" BorderThickness="4,0,0,4" BorderBrush="White" CornerRadius="0,0,0,1"
VerticalAlignment="Stretch" HorizontalAlignment="Right" Width="{Binding ElementName=border, Path=ActualHeight, Mode=OneWay}" />
</Grid>
我想让border的宽度等于高度,为什么不显示?
还有如果我想让border的宽度绑定为高度的4/3,应该怎么写?
[解决办法]
依赖项属性的绑定发生在PageLoaded之前吧?此时ActualHeight不可能有值,值为0
[解决办法]
绑定属性有问题。在控件初始化时 ActualHeight为0.
border的宽度绑定为高度的4/3,可以在后台代码设置,然后重新绑定。
[解决办法]
可以在页面的SizeChanged事件里面进行绑定,Loaded的时候,所有的长度和宽度都为0,但是在SizeChanged的时候就已经得到值了。另外,不要担心,在页面第一次加载的时候,也会触发SizeChanged事件