Было бы лучше создать собственный стиль TextBox, включающий полигон.Вы можете получить стили по умолчанию от здесь .
Просто возьмите стиль по умолчанию для TextBox и связанных ресурсов, затем добавьте свой многоугольник слева.
Что-то вроде:
<LinearGradientBrush x:Key="TextBoxBorder"
StartPoint="0,0"
EndPoint="0,20"
MappingMode="Absolute">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#ABADB3"
Offset="0.05"/>
<GradientStop Color="#E2E3EA"
Offset="0.07"/>
<GradientStop Color="#E3E9EF"
Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
<Style x:Key="CustomTextBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background"
Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
<Setter Property="BorderBrush"
Value="{StaticResource TextBoxBorder}"/>
<Setter Property="BorderThickness"
Value="1"/>
<Setter Property="Padding"
Value="1"/>
<Setter Property="AllowDrop"
Value="true"/>
<Setter Property="FocusVisualStyle"
Value="{x:Null}"/>
<Setter Property="ScrollViewer.PanningMode"
Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled"
Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<DockPanel>
<Polygon x:Name="polygon" DockPanel.Dock="Left" Width="29" Points="14,8 14,21 28,14.5" Fill="Gray" Stroke="DarkGray"/>
<theme:ListBoxChrome x:Name="Bd"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"
RenderMouseOver="{TemplateBinding IsMouseOver}"
RenderFocused="{TemplateBinding IsKeyboardFocusWithin}"
SnapsToDevicePixels="true">
<ScrollViewer x:Name="PART_ContentHost"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</theme:ListBoxChrome>
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled"
Value="false">
<Setter TargetName="Bd"
Property="Background"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="IsKeyboardFocusWithin"
Value="false">
<Setter TargetName="polygon"
Property="Visibility"
Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Где xmlns theme
определяется как xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
.Вам нужно добавить ссылку на PresentationFramework.Aero.dll или изменить ее с ListBoxChrome на Border.