首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

这样绑定为什么不行?该怎么解决

2012-03-07 
这样绑定为什么不行?Grid x:NameLayoutRoot BackgroundWhiteGrid.RowDefinitionsRowDefinition

这样绑定为什么不行?
<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事件

热点排行