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

时间:2009-02-01 13:56:02

标签: silverlight

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

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

而且,我们应该了解Silverlight的任何内容,以了解为什么他们没有为您经常要设置背景颜色的许多元素包含Background属性?

e.g。这给出了错误“在Textblock类型中找不到属性Background”:

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

4 个答案:

答案 0 :(得分:43)

TextBlock源自FrameworkElementTextBox派生自Control,派生自FrameworkElement。 Background color property位于Control中。

在WPF中,TextBlock拥有自己的Background Property

在文本后面添加颜色的最佳方法是将文本放在容器(如Border或Grid)中。类似的东西:

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

答案 1 :(得分:9)

<Border Background="GreenYellow">
    <TextBlock Text="sdfs" Height="60" Width="200"  />
</Border>

答案 2 :(得分:6)

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

答案 3 :(得分:5)

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

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

参考Label Control in Silverlight

相关问题