<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Window.Resources>
<Grid Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="FirstColumn"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ToggleButton Name="m_chkTest"
Grid.Row="0"
Grid.Column="1"
HorizontalAlignment="Left"
Content="Test"
Margin="4"/>
<Grid Grid.Row="1"
Grid.ColumnSpan="2"
Visibility="{Binding IsChecked, ElementName=m_chkTest, Converter={StaticResource ResourceKey=BooleanToVisibilityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="FirstColumn"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Test1"/>
<Label Grid.Row="0" Grid.Column="1" Content="Test2"/>
<Label Grid.Row="0" Grid.Column="2" Content="Test3"/>
</Grid>
</Grid>
</Window>
When I toggle the test toggle button, the content goes from left to centered (because of the new visible content). What I would like is that the toggle button is centered by default (because of the hidden content, not only because I change it horizontal alignment.

This image show the 3 states available. I achieve another state by clicking on the test toggle button. What I would not like to occur is the first one.
You need a different converter than BooleanToVisibility because that converter returns Collapsed for visibility rather than Hidden, like this: