TextBlock
のPadding
とMargin
をゼロに設定してみてください。
<TextBlock Padding="0" Margin="0" ... />
あなたはあなたがこれをしたいしようとしている複数のテキストブロックを持っているので、あなたが可能性使用Style
はこれを行うために必要があります。
<StackPanel Orientation="Horizontal">
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="0" />
<Setter Property="Margin" Value="0" />
</Style>
...
</StackPanel>
これが解決しない場合は、負のマージンの使用を開始できます。テキストの間の間隔は、フォントサイズやテキストに依存するため、
Margin="-1,0,0,0"
しかし、これはあなたのコードに脆性が導入されましたが表示されます。たとえば、フォントサイズを13に変更すると、5つの小文字の「e」でこの問題は発生しなくなります。ただし、テキストを大文字の「E」に変更すると同じ問題が発生します。
TextBlock
のクリッピングプロパティを使用してみても、レンダリングの影響を受けることはできますが、テキストを数ピクセル調整するだけのようです。 2つのテキストサンプルを同じように見せようとしている理由を聞かせてもらえますか?
更新: 私はこの作業をあなたがしたいと思うようにする良い方法があると思います。 RichTextBox
を使用したり、カスタムコントロールを作成したりする必要があります。
Hereは、テキストハイライト付きの良い例です(前景の強調表示ですが)。
それは役に立たなかった... – andrew
ええと、それは私が思ったよりも複雑に思えます。私はいくつかのコメントで私の答えを更新しました。 –
私はそれをやっている理由は、いくつかの個々の部分をハイライト表示できるHighlightedTextBlockコントロールを実装していることです(highligtightingというのは、フォアグラウンドではなく背景色を変更することを意味します)。そして、それはアイテムテンプレートリストボックスに表示され、アイテムは動的に強調表示され、検索されたテキストが表示されます。あなたが言及したように、テキストの間隔はフォントサイズと表示されるテキストに依存しますが、検索されたテキストが変更されたときに項目の一部がシフトされることは本当に目立ちます。 – andrew