我在MSDN上发现了这个example,它显示了配置文本块的一些方法:
很多似乎对我有用,但这部分失败了:
textBlock.Background = Brushes.AntiqueWhite;
“背景”部分用红色标出,Visual Studio说:“Windows.UI.Xaml.Controls.TextBlock不包含Background的定义。”
我很困惑。
这是最近的变化吗?或者这会在以后删除吗?
答案 0 :(得分:34)
如果我记得正确的WinRT基于Silverlight,而TextBlock
派生自FrameworkElement
,而且与WPF不同,它没有自己的Background
属性。
解决方法是提供相同的效果,使用其他元素充当容器,并使用Border
或Grid
与Background
等提供背景。等等; < / p>
<Border Background="AntiqueWhite">
<TextBlock/>
</Border>
或者Rectangle
后面的TextBlock
提供相同的内容,如果它包含在Grid
单元格或类似内容中,除非您想在{{1上设置尺寸直接;
Rectangle
不幸的是,我认为这是您目前唯一的选择。希望这会有所帮助。
答案 1 :(得分:2)
这将背景设置为古董白色。此外,网格的高度和宽度与TextBlock的高度和宽度绑定,因此您不必手动设置网格的大小。
LIMIT 1
答案 2 :(得分:0)
在UWP中,许多控件已被简化(可能是为了减少它们的内存占用),并且不具有其WPF兄弟所特有的某些属性。
与其在所讨论的UWP元素上设置诸如.Background
之类的属性(某些答案已经提到过),它可以嵌套在<Grid></Grid>
元素中,但这不是 建议,除非您希望分配给Grid
的属性在多个子元素之间共享。如果要将背景(或UWP控件中找不到的其他属性)应用于TextBlock
或类似的东西,则应该将其包装在<Border></Border>
元素中,这是推荐的方法在布局计算和内存开销方面,当您仅尝试自定义单个元素时,与将其包装在<Grid />
中相比,这是一种轻巧的方法。
答案 3 :(得分:0)
设置文本块的背景颜色
TextblockName.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FF202B49"));
答案 4 :(得分:-1)
您还可以使用以下代码进行动态更改。 (仅适用于WPF)
textBlock.Background = new SolidColorBrush(Colors.AntiqueWhite);