Windows phone 8 为什么绑定到父元素属性的WP8.1控件属性无效?

Windows phone 8 为什么绑定到父元素属性的WP8.1控件属性无效?,windows-phone-8,data-binding,Windows Phone 8,Data Binding,数据绑定没有显示任何内容,啊,白色空白屏幕== <StackPanel x:Name="stackPanel"> <Canvas x:Name="canvas" Width="{Binding ActualWidth, ElementName=stackPanel, Mode=OneWay}" Height="{Binding Width, RelativeSource={RelativeSource Mode=Self}}"> &

数据绑定没有显示任何内容,啊,白色空白屏幕==

<StackPanel x:Name="stackPanel">
<Canvas x:Name="canvas"
        Width="{Binding ActualWidth, ElementName=stackPanel, Mode=OneWay}"
        Height="{Binding Width, RelativeSource={RelativeSource Mode=Self}}">
    <Ellipse Height="{Binding ActualHeight, ElementName=canvas, Mode=OneWay}"
             Width="{Binding ActualWidth, ElementName=canvas, Mode=OneWay}"
             Fill="Black"
             HorizontalAlignment="Center"
             VerticalAlignment="Center" />
</Canvas>


您正在绑定实际宽度或实际高度椭圆->画布->堆栈面板。实际高度和实际宽度是特殊的。如果我们使用宽度和高度,您的xaml代码将正常工作。为了使您的代码能够使用ActualWidth或ActualHeight,我们可以将Canvas和StackPanel之间的绑定设置为双向。因此,我认为以下代码适用于您:

<Canvas x:Name="canvas" 
    Width="{Binding ActualWidth, ElementName=stackPanel, Mode=TwoWay}"
    Height="{Binding Width, RelativeSource={RelativeSource Mode=Self}}">
            <Ellipse Height="{Binding ActualWidth, ElementName=canvas, Mode=OneWay}"
         Width="{Binding ActualWidth, ElementName=canvas, Mode=OneWay}"
         Fill="Black"
         HorizontalAlignment="Center"
         VerticalAlignment="Center" />
</Canvas>