Как изменить цвет фона текстового блока в Silverlight? - PullRequest
27 голосов
/ 01 февраля 2009

Мне нужен текстовый блок с синим текстом на желтом фоне. Я могу установить синий текст с атрибутом «Передний план». Но «Фон» не работает (я думаю, это было бы слишком просто).

Так, каков лучший способ сделать это, обернуть это в Прямоугольник или Холст, у которого есть цвет фона?

И есть ли что-то, что мы должны знать о Silverlight, чтобы понять, почему они не включают атрибут Background для многих элементов, для которых вы часто хотите установить цвет фона?

например. это выдает ошибку «Свойство Background не найдено в типе Textblock»:

<TextBlock 
    Foreground="Blue" 
    Background="Yellow"
        Height="20" 
    HorizontalAlignment="Stretch" 
    Margin="0"
    Test="this is a test"/>

Ответы [ 4 ]

43 голосов
/ 03 февраля 2009

TextBlock является производным от FrameworkElement . TextBox является производным от Control , который является производным от FrameworkElement. Свойство Цвет фона находится в элементе управления.

В WPF TextBlock имеет Свойство фона своего собственного.

Лучший способ добавить цвет позади вашего текста - это поместить текст в контейнер, например, как Граница или Сетка. Что-то вроде:

<Grid  Background="Yellow" >  
    <TextBlock Foreground="Blue"
               Height="20"
               HorizontalAlignment="Stretch"
               Margin="0" 
               Text="this is a test"/> 
</Grid>
9 голосов
/ 20 июля 2012
<Border Background="GreenYellow">
    <TextBlock Text="sdfs" Height="60" Width="200"  />
</Border>
6 голосов
/ 01 февраля 2009

По какой-то причине его нет в Silverlight, хотя в WPF. Просто оберните границу вокруг нее (она автоматически изменит размер содержимого).

5 голосов
/ 23 марта 2010

Просто, если кто-то найдет эту нить, погуглит или перебьет ...

Если вам нужен фон для этого, используйте элемент управления меткой, он находится в наборе инструментов начиная с версии 3, и я думаю, что в версии 4 он уже включен в ядро.

См. Контроль надписей в Silverlight

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...