WPF では、カスタム ブラシを設定していますTextBox。BackgroundPropertyこのブラシに、TextBox. ブラシは とGlyphRunBrushよく似た動作をするImageBrushですが、ラスタライズされたグリフがブラシ ソースとして実行されます。
これどうやってするの?
例:

1 つの方法は、次のように、ブラシ自体に変換を適用することです。
<TextBox>
<TextBox.Background>
<ImageBrush ImageSource="/MyApp;component/Search.ico"
AlignmentX="Right" Stretch="Uniform">
<ImageBrush.Transform>
<TransformGroup>
<TranslateTransform X="-5"/>
</TransformGroup>
</ImageBrush.Transform>
</ImageBrush>
</TextBox.Background>
</TextBox>
ブラシのViewportプロパティで幅を変更することもできますが、右側に揃えているため、必要以上に複雑になる可能性があります。