绑定到ColumnDefinition.ActualWidth返回0

Can*_*ith 3 wpf grid xaml binding actualwidth

将其粘贴到苹果酒中.

<Grid x:Name="Grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition x:Name="ColumnDefinition"/>
    </Grid.ColumnDefinitions>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Text="{Binding ActualWidth, ElementName=Grid}"/>
        <TextBlock Text="{Binding ActualWidth, ElementName=ColumnDefinition}"/>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

现在,运行它.第二个TextBlock显示0,但不应该,对吧?解决方法?

Anv*_*aka 6

不,你没有.ActualWidth实际上,ColumnDefinition确实有一个属性.但它既不是DependencyProperty也没有INotifyPropertyChanged实施.所以没有人让你的目标知道何时ActualWidth更新.

解决方法?为了什么?您可以随时使用ElementName绑定到父FrameworkElement,谁拥有正是ActualWidth你想要的.抱歉复杂的短语:).无法使其更简单.

希望这可以帮助.