Ответ 1
Оба предыдущих ответа верны. Вот пример (взятый в основном из MSDN) о том, как вы можете использовать это на двух разных UserControls, установив Grid.IsSharedSizeScope = "True" на родительский контейнер. Обратите внимание на атрибут SharedSizeGroup в ColumnDefinition. Вы можете увидеть эффект, переключая Grid.IsSharedSizeScope True/False
MainWindow
<StackPanel Grid.IsSharedSizeScope="True">
<my:UserControl1 HorizontalAlignment="Left" x:Name="userControl11" />
<my:UserControl2 HorizontalAlignment="Left" x:Name="userControl21" />
</StackPanel>
UserControl1
<UserControl ...>
<Grid ShowGridLines="True" Margin="0,0,10,0">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="FirstColumn"/>
<ColumnDefinition SharedSizeGroup="SecondColumn"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" SharedSizeGroup="FirstRow"/>
</Grid.RowDefinitions>
<Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0" Width="200" Height="100"/>
<Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0" Width="150" Height="100"/>
<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">First Column</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Second Column</TextBlock>
</Grid>
</UserControl>
UserControl2
<UserControl ...>
<Grid ShowGridLines="True" Margin="0,0,10,0">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="FirstColumn"/>
<ColumnDefinition SharedSizeGroup="SecondColumn"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" SharedSizeGroup="FirstRow"/>
</Grid.RowDefinitions>
<Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0" />
<Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0" />
<TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">First Column</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Second Column</TextBlock>
</Grid>
</UserControl>