相关疑难解决方法(0)

为什么在这种情况下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>
Run Code Online (Sandbox Code Playgroud)

我的问题是,在窗口的构造,后InitializeComponents()两种Grid.ColumnDefinitions[0].ActualWidth或"任何矩形".ActualWidth都被设置为0.0(高度相同).我不知道如何获取这些信息.有帮助吗?

观察:

  1. 我没有定义外部画布的宽度和高度,但如果我这样做,它并不能解决我的问题.
  2. 在运行时我可以看到它Canvas/Grid占据整个窗口空间,因此其中的每个矩形都有ActualWidth …

wpf grid xaml actualwidth actualheight

43
推荐指数
2
解决办法
6万
查看次数

标签 统计

actualheight ×1

actualwidth ×1

grid ×1

wpf ×1

xaml ×1