如何在WPF中设置标签的背景颜色

本文关键字:标签 背景 颜色 设置 WPF | 更新日期: 2023-09-27 18:17:06

我有一个标签,但设置背景属性似乎没有做任何事情:

    <Label Content="{Binding Name, Source={StaticResource LocStrings}}"
          HorizontalAlignment="Left" Margin="4" Name="label2"  Background="Blue" 
          VerticalAlignment="Top"/>

这不会显示蓝色背景(当属性background被识别时)。

在使用Label时也是如此。背景'way'我没有看到蓝色的背景。

更新:

我使用了下面的极简代码:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   Title="TEST" SizeToContent="WidthAndHeight">
    <Grid>
        <Label Content="TEXT TO TEST" Foreground="Green" Background="Orange"/>
    </Grid>
</Window>

我看到的是绿色的测试,但没有任何橙色背景

如何在WPF中设置标签的背景颜色

<Label Content="{Binding Name, Source={StaticResource LocStrings}}"
      HorizontalAlignment="Stretch" Margin="4" Name="label2"  Background="Blue" 
      VerticalAlignment="Top"/>

您是否尝试在内容中输入一些文本并检查绑定输出,也许您的绑定有问题。因为它在这里工作得很好。注意,我设置了 horizontalalign ="Stretch"而不是left,这将使标签使用所有的水平可用空间。如果您没有绑定任何东西,那么您的标签在上面的情况下将是不可见的,您可以将其与输出结合使用,以找出其他人(如Sriram Sakthivel和PoweredByOrange)所述的绑定可能存在的问题。为了帮助你,我们需要更多的信息:)

希望有帮助,

欢呼,

Stian

由于您绑定到字符串值,因此使用TextBlock而不是Label在这里是值得的。在此场景中可能不需要Label的内容模型。

这里有一个例子

<TextBlock Text="{Binding Name, Source={StaticResource LocStrings}}"
           HorizontalAlignment="Left" Margin="4" Name="label2"  Background="Blue" 
           VerticalAlignment="Top"/>

在TextBlock中显示文本而不是在Label中显示文本的其他好处

与Label不同的是,Textblock直接从FrameworkElement派生,而不是从Control派生,因此它是轻量级的。

标签遵循内容模型,因此外观可能会受到内容及其类型和/或为其定义的任何样式或模板的影响。

阅读这里了解更多Label和TextBlock的区别