How to make `Expander.Header` and `Expander.Content` same width?
I create an `Expander` template with a `ToggleButton` template like these:

    <Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                    <Border Padding="{TemplateBinding Padding}" 
                            Background="{x:Null}" 
                            BorderBrush="{x:Null}" 
                            BorderThickness="0" 
                            CornerRadius="0">
                        <Grid SnapsToDevicePixels="False" Background="Transparent">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0*" />
                                <ColumnDefinition Width="19" />
                                <ColumnDefinition Width="0*" />
                            </Grid.ColumnDefinitions>
                            <Ellipse x:Name="Ellipse" 
                                     Grid.Column="1"
                                     Width="19"
                                     Height="19"
                                     Margin="0" 
                                     Stretch="Uniform"
                                     Fill="{x:Null}" 
                                     Stroke="{DynamicResource Brush_Coal_Lighter}" 
                                     StrokeThickness="1" />
                            <Path x:Name="Up_Arrow" 
                                  Grid.Column="1"
                                  HorizontalAlignment="Center" 
                                  VerticalAlignment="Center" 
                                  Stretch="None"
                                  Fill="{DynamicResource Brush_Coal_Lighter}"
                                  Data="M 0 0 L 4 4 L 8 0 Z" />
                            <Path x:Name="Down_Arrow" 
                                  Grid.Column="1"
                                  Visibility="Collapsed" 
                                  HorizontalAlignment="Center" 
                                  VerticalAlignment="Center" 
                                  Stretch="None"
                                  Fill="{DynamicResource Brush_Coal_Lighter}" 
                                  Data="M 0 4 L 4 0 L 8 4 Z" />
                            <ContentPresenter x:Name="ContentPresenter"
                                              Grid.Column="2"
                                              SnapsToDevicePixels="True" 
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                              Margin="4,2,0,2"
                                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                              RecognizesAccessKey="True" />
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="HorizontalContentAlignment" Value="Right">
                            <Setter TargetName="ContentPresenter" Property="Grid.Column" Value="0"/>
                        </Trigger>
                        <Trigger Property="IsChecked" Value="true">
                            <Setter Property="Visibility" TargetName="Down_Arrow" Value="Visible" />
                            <Setter Property="Visibility" TargetName="Up_Arrow" Value="Collapsed" />
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter TargetName="Ellipse" Property="Stroke" Value="{DynamicResource Brush_Color_Dark}"/>
                            <Setter TargetName="Up_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Dark}"/>
                            <Setter TargetName="Down_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Dark}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter TargetName="Ellipse" Property="Stroke" Value="{DynamicResource Brush_Color_Darker}"/>
                            <Setter TargetName="Up_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Darker}"/>
                            <Setter TargetName="Down_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Darker}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

**AND THE `EXPANDER`:**

    <Style x:Key="ShiftViewsDateChooseExpander" TargetType="{x:Type Expander}">
        <Setter Property="ExpandDirection" Value="Down"/>
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="FontFamily" Value="{DynamicResource Font_Button}"/>
        <Setter Property="FontSize" Value="{DynamicResource Font_Size_Button}"/>
        <Setter Property="Foreground" Value="{DynamicResource Brush_Milk}" />
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Setter Property="VerticalContentAlignment" Value="Stretch" />
        <Setter Property="BorderBrush" Value="{x:Null}" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Margin" Value="0 3 3 0"/>
        <!-- THE PROBELEM IS HERE -->
        <Setter Property="Width" Value="220"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Expander}">
                    <DockPanel x:Name="dockPanel"
                               Width="{TemplateBinding Width}">
                        <Border x:Name="HeaderSiteBorder"
                                Width="{TemplateBinding Width}"
                                Background="Transparent"
                                BorderBrush="{x:Null}"
                                BorderThickness="0"
                                DockPanel.Dock="Top"
                                CornerRadius="2 2 0 0"
                                Padding="3 0">
                            <ToggleButton x:Name="HeaderSite"
                                          FontFamily="{TemplateBinding FontFamily}" 
                                          FontSize="{TemplateBinding FontSize}" 
                                          FontStretch="{TemplateBinding FontStretch}" 
                                          FontStyle="{TemplateBinding FontStyle}" 
                                          FontWeight="{TemplateBinding FontWeight}" 
                                          Foreground="{TemplateBinding Foreground}"
                                          HorizontalContentAlignment="Right" 
                                          Padding="{TemplateBinding Padding}"
                                          VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                                          FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" 
                                          Margin="1,1,1,0" 
                                          MinHeight="0" 
                                          MinWidth="0" 
                                          Width="{TemplateBinding Width}"
                                          Style="{StaticResource ExpanderDownHeaderStyle}"
                                          Content="{TemplateBinding Header}" 
                                          ContentTemplate="{TemplateBinding HeaderTemplate}"
                                          ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" 
                                          IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" 
                                          DockPanel.Dock="Top"
                                          ClickMode="Press"/>
                        </Border>
                        <Popup x:Name="popup"
                               Width="{TemplateBinding Width}"
                               IsOpen="True"
                               Placement="Bottom"
                               Focusable="False"
                               AllowsTransparency="True"
                               PopupAnimation="Slide"
                               DockPanel.Dock="Bottom"
                               HorizontalAlignment="Stretch"
                               VerticalAlignment="Stretch">
                            <Border x:Name="ExpandSiteBorder"
                                    Margin="1 0 3 0"
                                    Width="{Binding Path=Width,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,
                                        RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Expander}}}"
                                    HorizontalAlignment="Stretch"
                                    VerticalAlignment="Stretch"
                                    Visibility="Collapsed"
                                    Background="{DynamicResource Brush_Milk}"
                                    BorderBrush="{DynamicResource Brush_Milk_Dark}"
                                    BorderThickness="1 0 1 1"
                                    CornerRadius="0 0 2 2">
                                <ContentPresenter x:Name="ExpandSite"
                                                  Focusable="false" 
                                                  HorizontalAlignment="Stretch"
                                                  VerticalAlignment="Stretch"
                                                  Margin="1,1,1,1"  />
                            </Border>
                        </Popup>
                    </DockPanel>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsExpanded" Value="true">
                            <Setter Property="Foreground" Value="{DynamicResource Brush_Coal}"/>
                            <Setter TargetName="ExpandSiteBorder" Property="Visibility" Value="Visible" />
                            <Setter TargetName="popup" Property="IsOpen" Value="True" />
                            <Setter TargetName="HeaderSiteBorder" Property="Background" Value="{DynamicResource Brush_Milk}"/>
                        </Trigger>                       
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                        </Trigger>
                        
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

It works good, until I set the `Expander.Width` property. e.g. when I set the `Expander.Width` property, the `Header` will not rendered. e.g. The `Expander` wouldnt shot the `Header`. But when I delete the `Width` property, it will show again. Actually I want to force the `Expander.Header` and `Expander.Content` have same `Width`. have you any suggestion? Can you help me please? Thanks in advance.
How to make `Expander.Header` and `Expander.Content` same width?
===

I create an `Expander` template with a `ToggleButton` template like these:

    <Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                    <Border Padding="{TemplateBinding Padding}" 
                            Background="{x:Null}" 
                            BorderBrush="{x:Null}" 
                            BorderThickness="0" 
                            CornerRadius="0">
                        <Grid SnapsToDevicePixels="False" Background="Transparent">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0*" />
                                <ColumnDefinition Width="19" />
                                <ColumnDefinition Width="0*" />
                            </Grid.ColumnDefinitions>
                            <Ellipse x:Name="Ellipse" 
                                     Grid.Column="1"
                                     Width="19"
                                     Height="19"
                                     Margin="0" 
                                     Stretch="Uniform"
                                     Fill="{x:Null}" 
                                     Stroke="{DynamicResource Brush_Coal_Lighter}" 
                                     StrokeThickness="1" />
                            <Path x:Name="Up_Arrow" 
                                  Grid.Column="1"
                                  HorizontalAlignment="Center" 
                                  VerticalAlignment="Center" 
                                  Stretch="None"
                                  Fill="{DynamicResource Brush_Coal_Lighter}"
                                  Data="M 0 0 L 4 4 L 8 0 Z" />
                            <Path x:Name="Down_Arrow" 
                                  Grid.Column="1"
                                  Visibility="Collapsed" 
                                  HorizontalAlignment="Center" 
                                  VerticalAlignment="Center" 
                                  Stretch="None"
                                  Fill="{DynamicResource Brush_Coal_Lighter}" 
                                  Data="M 0 4 L 4 0 L 8 4 Z" />
                            <ContentPresenter x:Name="ContentPresenter"
                                              Grid.Column="2"
                                              SnapsToDevicePixels="True" 
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                              Margin="4,2,0,2"
                                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                              RecognizesAccessKey="True" />
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="HorizontalContentAlignment" Value="Right">
                            <Setter TargetName="ContentPresenter" Property="Grid.Column" Value="0"/>
                        </Trigger>
                        <Trigger Property="IsChecked" Value="true">
                            <Setter Property="Visibility" TargetName="Down_Arrow" Value="Visible" />
                            <Setter Property="Visibility" TargetName="Up_Arrow" Value="Collapsed" />
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter TargetName="Ellipse" Property="Stroke" Value="{DynamicResource Brush_Color_Dark}"/>
                            <Setter TargetName="Up_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Dark}"/>
                            <Setter TargetName="Down_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Dark}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter TargetName="Ellipse" Property="Stroke" Value="{DynamicResource Brush_Color_Darker}"/>
                            <Setter TargetName="Up_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Darker}"/>
                            <Setter TargetName="Down_Arrow" Property="Fill" Value="{DynamicResource Brush_Color_Darker}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

**AND THE `EXPANDER`:**

    <Style x:Key="ShiftViewsDateChooseExpander" TargetType="{x:Type Expander}">
        <Setter Property="ExpandDirection" Value="Down"/>
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="FontFamily" Value="{DynamicResource Font_Button}"/>
        <Setter Property="FontSize" Value="{DynamicResource Font_Size_Button}"/>
        <Setter Property="Foreground" Value="{DynamicResource Brush_Milk}" />
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Setter Property="VerticalContentAlignment" Value="Stretch" />
        <Setter Property="BorderBrush" Value="{x:Null}" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Margin" Value="0 3 3 0"/>
        <!-- THE PROBELEM IS HERE -->
        <Setter Property="Width" Value="220"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Expander}">
                    <DockPanel x:Name="dockPanel"
                               Width="{TemplateBinding Width}">
                        <Border x:Name="HeaderSiteBorder"
                                Width="{TemplateBinding Width}"
                                Background="Transparent"
                                BorderBrush="{x:Null}"
                                BorderThickness="0"
                                DockPanel.Dock="Top"
                                CornerRadius="2 2 0 0"
                                Padding="3 0">
                            <ToggleButton x:Name="HeaderSite"
                                          FontFamily="{TemplateBinding FontFamily}" 
                                          FontSize="{TemplateBinding FontSize}" 
                                          FontStretch="{TemplateBinding FontStretch}" 
                                          FontStyle="{TemplateBinding FontStyle}" 
                                          FontWeight="{TemplateBinding FontWeight}" 
                                          Foreground="{TemplateBinding Foreground}"
                                          HorizontalContentAlignment="Right" 
                                          Padding="{TemplateBinding Padding}"
                                          VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                                          FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" 
                                          Margin="1,1,1,0" 
                                          MinHeight="0" 
                                          MinWidth="0" 
                                          Width="{TemplateBinding Width}"
                                          Style="{StaticResource ExpanderDownHeaderStyle}"
                                          Content="{TemplateBinding Header}" 
                                          ContentTemplate="{TemplateBinding HeaderTemplate}"
                                          ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" 
                                          IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" 
                                          DockPanel.Dock="Top"
                                          ClickMode="Press"/>
                        </Border>
                        <Popup x:Name="popup"
                               Width="{TemplateBinding Width}"
                               IsOpen="True"
                               Placement="Bottom"
                               Focusable="False"
                               AllowsTransparency="True"
                               PopupAnimation="Slide"
                               DockPanel.Dock="Bottom"
                               HorizontalAlignment="Stretch"
                               VerticalAlignment="Stretch">
                            <Border x:Name="ExpandSiteBorder"
                                    Margin="1 0 3 0"
                                    Width="{Binding Path=Width,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,
                                        RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Expander}}}"
                                    HorizontalAlignment="Stretch"
                                    VerticalAlignment="Stretch"
                                    Visibility="Collapsed"
                                    Background="{DynamicResource Brush_Milk}"
                                    BorderBrush="{DynamicResource Brush_Milk_Dark}"
                                    BorderThickness="1 0 1 1"
                                    CornerRadius="0 0 2 2">
                                <ContentPresenter x:Name="ExpandSite"
                                                  Focusable="false" 
                                                  HorizontalAlignment="Stretch"
                                                  VerticalAlignment="Stretch"
                                                  Margin="1,1,1,1"  />
                            </Border>
                        </Popup>
                    </DockPanel>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsExpanded" Value="true">
                            <Setter Property="Foreground" Value="{DynamicResource Brush_Coal}"/>
                            <Setter TargetName="ExpandSiteBorder" Property="Visibility" Value="Visible" />
                            <Setter TargetName="popup" Property="IsOpen" Value="True" />
                            <Setter TargetName="HeaderSiteBorder" Property="Background" Value="{DynamicResource Brush_Milk}"/>
                        </Trigger>                       
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                        </Trigger>
                        
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

It works good, until I set the `Expander.Width` property. e.g. when I set the `Expander.Width` property, the `Header` will not rendered. e.g. The `Expander` wouldnt shot the `Header`. But when I delete the `Width` property, it will show again. Actually I want to force the `Expander.Header` and `Expander.Content` have same `Width`. have you any suggestion? Can you help me please? Thanks in advance.