Почему ActualWidth и ActualHeight 0.0 в этом случае?

у меня естьGrid внутриCanvas определяется так:

<Canvas x:Name="outerCanvas">
    <Grid Grid.Row="1" Name="cGrid" ShowGridLines="True" Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}" Height="{Binding Path=ActualHeight, RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition  />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Rectangle Name="rectangle1" Stroke="Black" Fill="AntiqueWhite" />
        <Rectangle Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" Grid.RowSpan="1" Name="rectangle2" Stroke="Black" Fill="AliceBlue" />
        <Rectangle Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="1" Grid.RowSpan="1" Name="rectangle3" Stroke="Black" Fill="Aqua" />
        <Rectangle Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="1" Name="rectangle4" Stroke="Black" Fill="DarkViolet" />
    </Grid>
</Canvas>

Моя проблема в том, что в конструкторе Window послеInitializeComponents() илиGrid.ColumnDefinitions[0].ActualWidth или "любой прямоугольник".ActualWidth все установлены в 0.0 (то же самое для высот). Я не понимаю, что делать, чтобы получить эту информацию. Любая помощь?

Замечания:

Я не определяю ширину и высоту внешнего холста, но если я это сделаю, это не решит мою проблему.Во время выполнения я вижу, что этоCanvas/Grid занимает все пространство окна, поэтому каждый прямоугольник внутри него имеетActualWidthс иActualHeightsШирина / высота сетки привязана к холсту, но я попытался удалить эту привязку, и моя проблема все еще сохраняется.

Ответы на вопрос(4)

Ваш ответ на вопрос