How to change the background color of a Textblock in Silverlight

silverlight

I want a textblock that has blue text on a yellow background.
I can set the blue text with the "Foreground" attribute.
But "Background" doesn't work (that would be too easy I guess).

So what is the best way to do this, wrap it in a Rectangle or Canvas that has a background color?

And, is there anything we should know about Silverlight to understand why they didn't include a Background attribute for many of the elements on which you would often want to set the background color?

e.g. this gives the error "The property Background was not found in type Textblock":

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

Best Answer

TextBlock is derived from FrameworkElement. TextBox is derived from Control, which is derived from FrameworkElement. The Background color property is placed in Control.

In WPF the TextBlock has a Background Property of it's own.

The best way to add a color behind your text is to place the text inside a container like a Border or a Grid. Something like:

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