I have two grids in my app, a container grid and a child grid. It is possible for the container grid's width and height to change at runtime. Child grids have a default width and height of 700x700. If the parent grid is 300x300, then the child grid will be 300x300 as well, but when I get the actual width and height of the child grid at runtime, I still get 700x700, despite the fact that the actual width and height are 300x300.
XAML
<Grid Width="300" Height="300">
<Grid Width="700" Height="700" Loaded="Grid_Loaded" >
</Grid>
</Grid>
Code Behind
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
Grid grid = sender as Grid;
int width = (int)grid.ActualWidth; //<-- 700, but 300 expected
int height = (int)grid.ActualHeight;//<-- 700, but 300 expected
}