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

时间:2014-08-08 21:24:39

标签: c# wpf colors background label

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

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

这不显示蓝色背景(同时识别属性背景。

当使用Label.Background&#39;方式&#39;我没有看到蓝色背景。

更新

我使用了以下简约代码:

<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>

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

2 个答案:

答案 0 :(得分:2)

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

您是否尝试在内容中输入一些文字并检查绑定输出,可能是您的绑定有问题。因为它在这里工作得很好。 请注意,我设置 Horizo​​ntalAlignment =&#34;拉伸&#34; 而不是左,这将使标签使用所有水平可用空间。如果您没有任何约束,您的标签在上述情况下将不可见,您可以将其与输出结合使用,以找出其他人所说的绑定可能出现的错误,例如Sriram Sakthivel和PoweredByOrange。为了帮助您,我们需要更多信息:)

希望它有所帮助,

干杯,

了Stian

答案 1 :(得分:2)

由于您绑定了字符串值,因此使用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派生,从而使它变得轻量级。

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

请在此处阅读更多Differences between Label and TextBlock