20

我在 MSDN 上找到了这个例子,它展示了一些配置文本块的方法:

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

textBlock.Background = Brushes.AntiqueWhite;

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

我很困惑。

这是最近的变化吗?还是后来被删除了?

4

5 回答 5

38

如果我没记错的话,WinRT 很大程度上基于 Silverlight,而TextBlock它派生自FrameworkElementWPF 并且与 WPF 不同,它没有自己的Background属性。

一种解决方法是使用附加元素提供相同的效果以充当容器并使用BorderGrid使用Background等提供背景。类似的东西;

<Border Background="AntiqueWhite">
  <TextBlock/>
</Border>

或者,如果它包含Rectangle在一个Cell 或TextBlock类似的东西中,那么它可能会提供相同的东西,除非你想直接设置大小;GridRectangle

<Rectangle Fill="AntiqueWhite"/>
<TextBlock/>

不幸的是,我认为这是您当前唯一的选择。希望这可以帮助。

于 2013-03-14T03:16:31.900 回答
1

设置 TextBlock 的背景颜色

TextblockName.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FF202B49"));
于 2019-12-19T09:44:46.337 回答
1

这将背景设置为古色古香的白色。此外,网格的高度和宽度与 TextBlock 的高度和宽度绑定,因此您不必手动设置网格的大小。

        <Grid Background="AntiqueWhite" Height="{Binding ActualHeight , ElementName=textBlock1}" Width="{Binding ActualHeight , ElementName=textBlock1}">
         <TextBlock x:Name="textBlock1" Text="Text" />
        </Grid>
于 2015-09-01T09:23:36.303 回答
0

在 UWP 中,许多控件已被简化(可能是为了减少它们的内存占用)并且不具有其 WPF 兄弟的某些典型属性。

.Background它可以嵌套在一个<Grid></Grid>元素中,而不是像在相关的 UWP 元素上设置属性(正如一些答案已经提到的那样),但建议这样做,除非您希望分配给 的属性在多个子元素Grid之间共享。如果您想将背景(或在 UWP 控件中找不到的其他属性)应用到或类似的,您应该做的是将其包装在一个元素中,当您仅尝试自定义单个元素时,这是推荐的方法元素,并且在布局计算和内存开销方面都比将其包装在 a 中轻得多TextBlock<Border></Border><Grid />

于 2019-05-18T00:45:33.377 回答
-1

您也可以使用以下代码进行动态更改。(仅适用于 WPF)

textBlock.Background = new SolidColorBrush(Colors.AntiqueWhite);
于 2014-04-23T06:57:19.110 回答