如何在Silverlight中更改Textblock的背景颜色?

Edw*_*uay 27 silverlight

我想要一个在黄色背景上有蓝色文本的文本块.我可以使用"Foreground"属性设置蓝色文本.但是"背景"不起作用(我猜这太容易了).

那么最好的方法是将它包装在具有背景颜色的Rectangle或Canvas中?

而且,有什么我们应该知道的Silverlight能够理解为什么它们不包含你经常想要设置背景颜色的许多元素的Background属性吗?

例如,这会给出错误"在Textblock类型中找不到属性Background":

<TextBlock 
    Foreground="Blue" 
    Background="Yellow"
        Height="20" 
    HorizontalAlignment="Stretch" 
    Margin="0"
    Test="this is a test"/>
Run Code Online (Sandbox Code Playgroud)

Sor*_*oot 43

TextBlock派生自FrameworkElement.TextBox派生自Control,派生自FrameworkElement.的背景颜色属性被放置在控制.

在WPF中,TextBlock具有自己的背景属性.

在文本后面添加颜色的最佳方法是将文本放在容器(如Border或Grid)中.就像是:

<Grid  Background="Yellow" >  
    <TextBlock Foreground="Blue"
               Height="20"
               HorizontalAlignment="Stretch"
               Margin="0" 
               Text="this is a test"/> 
</Grid>
Run Code Online (Sandbox Code Playgroud)

  • 如果我需要文本块只占用所需的空间,那么背景只会设置为内容大小? (6认同)
  • 在这种情况下,使用边框很有用. (2认同)

小智 9

<Border Background="GreenYellow">
    <TextBlock Text="sdfs" Height="60" Width="200"  />
</Border>
Run Code Online (Sandbox Code Playgroud)


Ste*_*ins 6

由于某些原因,它不在Silverlight中,尽管它在WPF中.只需将一个边框包裹起来(它会自动调整大小).


Bra*_*lio 5

如果有人发现这个线程谷歌搜索或叮叮当当...

如果您需要背景,请使用自版本3以来的工具包中的标签控件,我想在版本4中它已经包含在核心中.

请参阅Silverlight中的Label Control