我想要一个在黄色背景上有蓝色文字的文本块。 我可以使用“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"/>
答案 0 :(得分:43)
TextBlock源自FrameworkElement。 TextBox派生自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中它已经包含在核心中。