I figured out a way to make the square smaller than the parent by using MaxWidth and MaxHeight.
<Grid Background="Blue">
<Grid Background="Red"
MaxWidth="{Binding ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType=Grid}}"
MaxHeight="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType=Grid}}">
</Grid>
</Grid>
The parent Grid fits the whole screen, and the child Grid keeps its aspect ratio even on rotation.
EDIT :
Or simply use ViewBox
<Grid Background="Blue">
<Viewbox Stretch="Uniform">
<Grid Background="Red" MinWidth="1" MinHeight="1">
</Grid>
</Viewbox>
</Grid>
You can use this for any aspect ratio by changing the MinWidth and MinHeight of the inner Grid