访问文本块的背景颜色

时间:2013-03-14 01:30:28

标签: xaml windows-runtime windows-store-apps winrt-xaml

我在MSDN上发现了这个example,它显示了配置文本块的一些方法:

很多似乎对我有用,但这部分失败了:

textBlock.Background = Brushes.AntiqueWhite;

“背景”部分用红色标出,Visual Studio说:“Windows.UI.Xaml.Controls.TextBlock不包含Background的定义。”

我很困惑。

这是最近的变化吗?或者这会在以后删除吗?

5 个答案:

答案 0 :(得分:34)

如果我记得正确的WinRT基于Silverlight,而TextBlock派生自FrameworkElement,而且与WPF不同,它没有自己的Background属性。

解决方法是提供相同的效果,使用其他元素充当容器,并使用BorderGridBackground等提供背景。等等; < / 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);