我在 MSDN 上找到了这个例子,它展示了一些配置文本块的方法:
很多似乎对我有用,但这部分失败了:
textBlock.Background = Brushes.AntiqueWhite;
“背景”部分用红色下划线,Visual Studio 说:“Windows.UI.Xaml.Controls.TextBlock 不包含背景的定义”。
我很困惑。
这是最近的变化吗?还是后来被删除了?
我在 MSDN 上找到了这个例子,它展示了一些配置文本块的方法:
很多似乎对我有用,但这部分失败了:
textBlock.Background = Brushes.AntiqueWhite;
“背景”部分用红色下划线,Visual Studio 说:“Windows.UI.Xaml.Controls.TextBlock 不包含背景的定义”。
我很困惑。
这是最近的变化吗?还是后来被删除了?
如果我没记错的话,WinRT 很大程度上基于 Silverlight,而TextBlock
它派生自FrameworkElement
WPF 并且与 WPF 不同,它没有自己的Background
属性。
一种解决方法是使用附加元素提供相同的效果以充当容器并使用Border
或Grid
使用Background
等提供背景。类似的东西;
<Border Background="AntiqueWhite">
<TextBlock/>
</Border>
或者,如果它包含Rectangle
在一个Cell 或TextBlock
类似的东西中,那么它可能会提供相同的东西,除非你想直接设置大小;Grid
Rectangle
<Rectangle Fill="AntiqueWhite"/>
<TextBlock/>
不幸的是,我认为这是您当前唯一的选择。希望这可以帮助。
设置 TextBlock 的背景颜色
TextblockName.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FF202B49"));
这将背景设置为古色古香的白色。此外,网格的高度和宽度与 TextBlock 的高度和宽度绑定,因此您不必手动设置网格的大小。
<Grid Background="AntiqueWhite" Height="{Binding ActualHeight , ElementName=textBlock1}" Width="{Binding ActualHeight , ElementName=textBlock1}">
<TextBlock x:Name="textBlock1" Text="Text" />
</Grid>
在 UWP 中,许多控件已被简化(可能是为了减少它们的内存占用)并且不具有其 WPF 兄弟的某些典型属性。
.Background
它可以嵌套在一个<Grid></Grid>
元素中,而不是像在相关的 UWP 元素上设置属性(正如一些答案已经提到的那样),但不建议这样做,除非您希望分配给 的属性在多个子元素Grid
之间共享。如果您想将背景(或在 UWP 控件中找不到的其他属性)应用到或类似的,您应该做的是将其包装在一个元素中,当您仅尝试自定义单个元素时,这是推荐的方法元素,并且在布局计算和内存开销方面都比将其包装在 a 中轻得多。TextBlock
<Border></Border>
<Grid />
您也可以使用以下代码进行动态更改。(仅适用于 WPF)
textBlock.Background = new SolidColorBrush(Colors.AntiqueWhite);