XAML supports styles with control templates that can completely change control look. Following example changes tabs shape:
<Style TargetType="{x:Type TabsStudio:Tab}" BasedOn="{StaticResource DefaultTabStyle}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TabsStudio:Tab}"> <Grid> <Border Name="Border" BorderBrush="Black" BorderThickness="1,1,1,1" CornerRadius="6,6,0,0"> <ContentPresenter ContentSource="Header" Margin="12,2,12,2"/> </Border> <Polygon Points="0 22, 9 0, 0 0" Fill="{x:Static SystemColors.ControlBrush}"/> <Line X1="0" Y1="22" X2="9" Y2="0" Stroke="Black" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsTabSelected" Value="True"> <Setter TargetName="Border" Property="Background" Value="White"/> </Trigger> <Trigger Property="IsTabSelected" Value="False"> <Setter TargetName="Border" Property="Background" Value="LightGray" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>

Custom control template
While extra powerful, control templates in particular require nontrivial XAML skills and persistence to produce desired result.