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"/>
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>
For me worked next:
<Border Background="GreenYellow">
<TextBlock Text="sdfs" Height="60" Width="200" />
</Border>
It's not in Silverlight for some reason, although it is in WPF. Just wrap a Border round it (it will resize to the content automatically).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With