Мне кажется, что проблема в том, что вы не совсем хорошо понимаете разницу между
TabControl.ItemTemplate и
TabItem.HeaderTemplate.
Судя по шаблону, вы пытаетесь добавить кнопку для закрытия таба в шапку хедера.
Если это так, то для этой цели следует использовать следующий код:
<Grid>
<Grid.Resources>
<DataTemplate x:Key="ClosableTabItemHeaderTemplate">
<DataTemplate.Resources>
<BooleanToVisibilityConverter x:Key="B2V"/>
</DataTemplate.Resources>
<Grid Background="Transparent" HorizontalAlignment="Stretch" MinWidth="100" ToolTip="{Binding}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding}" Grid.Column="0" HorizontalAlignment="Center"/>
<Button Name="CLOSE"
Command="{Binding Path=CloseCommand}"
Width="15"
Height="15"
Grid.Column="1"
Template="{StaticResource CloseButtonTemplate}"
Visibility="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=TabItem},
Converter={StaticResource B2V}}"/>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="CLOSE" Property="Visibility" Value="Visible"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<Style TargetType="TabItem">
<Setter Property="HeaderTemplate" Value="{StaticResource ClosableTabItemHeaderTemplate}" />
</Style>
</Grid.Resources>
<TabControl>
<TabControl.Items>
<TabItem Header="This is test tab item with longer name." Width="100"/>
<TabItem Header="Short name" Width="100"/>
</TabControl.Items>
</TabControl>
</Grid>