wpf textblock - установить цвет фона только для текста? - PullRequest
1 голос
/ 07 марта 2011

Когда я устанавливаю цвет фона для текстового блока, он окрашивает прямоугольник заливки текстового блока. Если у меня есть многострочный текстовый блок, в котором строки обычно имеют неравную длину, это показывает пустые пробелы после конца более коротких строк. Это нормально, но есть ли способ установить цвет фона только за самими строками текста, чтобы это пустое пространство не создавалось?

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Я не на машине с Windows, поэтому не могу проверить это сам.Первое, что я бы попробовал, это стилизовать класс Run вместо TextBlock:

<Style TargetType="Run">
    <Setter Property="Background" Value="Blue"/>
</Style>

...

<TextBlock TextWrapping="Wrap">
    Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</TextBlock>

Я бы сделал это, исходя из предположения, что TextBlock создает несколько экземпляров Run, когда он имеетобернуть строки.

0 голосов
/ 07 марта 2011

Я думаю, что самый простой способ - поместить TextBlock внутри границы с BorderThickness = 0 и установить фон границы. Граница будет расширяться вместе с вашим текстовым блоком, но не займет дополнительное место.

...