C# 如何在WPF中设置标签的背景色?
我有一个标签,但设置背景属性似乎没有任何作用:C# 如何在WPF中设置标签的背景色?,c#,wpf,colors,background,label,C#,Wpf,Colors,Background,Label,我有一个标签,但设置背景属性似乎没有任何作用: <Label Content="{Binding Name, Source={StaticResource LocStrings}}" HorizontalAlignment="Left" Margin="4" Name="label2" Background="Blue" VerticalAlignment="Top"/> 这不会显示蓝色背景(当属性背景被识别时) 另外,当使用
<Label Content="{Binding Name, Source={StaticResource LocStrings}}"
HorizontalAlignment="Left" Margin="4" Name="label2" Background="Blue"
VerticalAlignment="Top"/>
这不会显示蓝色背景(当属性背景被识别时)
另外,当使用Label.Background“way”时,我看不到蓝色背景
<Label Content="{Binding Name, Source={StaticResource LocStrings}}"
HorizontalAlignment="Stretch" Margin="4" Name="label2" Background="Blue"
VerticalAlignment="Top"/>
更新:
我使用了以下最低限度的代码:
<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,但没有任何橙色背景。
<Label Content="{Binding Name, Source={StaticResource LocStrings}}"
HorizontalAlignment="Stretch" Margin="4" Name="label2" Background="Blue"
VerticalAlignment="Top"/>
您是否尝试在内容中输入一些文本并检查了绑定输出,可能您的绑定有问题。因为它在这里工作正常。
请注意,我设置了HorizontalAlignment=“Stretch”而不是左键,这将使标签使用所有水平可用空间。如果您没有绑定任何内容,则在上述情况下,您的标签将不可见,您可以将其与输出结合使用,以找出其他人(如Sriram Sakthivel和PoweredByOrange)所述的绑定可能存在的问题。如需帮助我们需要更多的信息:)
希望有帮助
干杯
斯蒂安
您是否尝试在内容中输入一些文本并检查了绑定输出,可能是绑定有问题。因为它在这里很好用。
请注意,我设置了HorizontalAlignment=“Stretch”而不是left,这将使标签使用所有水平可用空间。如果您没有绑定任何内容,则在上述情况下,您的标签将不可见,您可以将其与输出结合使用,以找出其他人(如Sriram Sakthivel和PoweredByOrange)所述的绑定可能存在的问题。为了帮助您做到这一点,我们需要更多的信息:)
希望有帮助
干杯
Stian因为您要绑定到字符串值,所以使用
文本块
而不是标签
在这里是值得的。此场景中可能不需要标签的内容模型
这里有一个例子
<TextBlock Text="{Binding Name, Source={StaticResource LocStrings}}"
HorizontalAlignment="Left" Margin="4" Name="label2" Background="Blue"
VerticalAlignment="Top"/>
在文本块而不是标签中显示文本的一些其他好处
与标签不同,Textblock直接从FrameworkElement派生,而不是从控件派生,因此它是轻量级的
标签遵循内容模型,因此外观可能会受到内容及其类型和/或为其定义的任何样式或模板的影响
更多信息,请阅读此处,因为您要绑定到字符串值,因此在此处使用
文本块
而不是标签
是值得的。此场景中可能不需要标签的内容模型
这里有一个例子
<TextBlock Text="{Binding Name, Source={StaticResource LocStrings}}"
HorizontalAlignment="Left" Margin="4" Name="label2" Background="Blue"
VerticalAlignment="Top"/>
在文本块而不是标签中显示文本的一些其他好处
与标签不同,Textblock直接从FrameworkElement派生,而不是从控件派生,因此它是轻量级的
标签遵循内容模型,因此外观可能会受到内容及其类型和/或为其定义的任何样式或模板的影响
请阅读此处了解更多信息。应该这样。在输出窗口中是否看到任何绑定错误?这不重要,但值得检查。@PoweredByOrange不,我没有发现绑定错误。我在其周围放置了一个带有背景色的StackPanel,它似乎工作得很好。只是通过移除绑定进行了测试,它工作得很好。您需要发布复制问题的示例程序。@MichelKeijzers您不需要使用
StackPanel
来设置背景。标签是否漂浮在其他元素的顶部?相邻控件是如何排列的?奇怪。应该这样。在输出窗口中是否看到任何绑定错误?这不重要,但值得检查。@PoweredByOrange不,我没有发现绑定错误。我在其周围放置了一个带有背景色的StackPanel,它似乎工作得很好。只是通过移除绑定进行了测试,它工作得很好。您需要发布复制问题的示例程序。@MichelKeijzers您不需要使用StackPanel
来设置背景。标签是否漂浮在其他元素的顶部?相邻控件是如何排列的?我编辑了我的示例,但似乎仍然不起作用。水平对齐添加也没有任何区别。@MichelKeijzers在这里水平拉伸很好,默认字体大小。如果出于某种原因希望它覆盖整个屏幕,也可以添加VerticalAlignment=“Stretch”。H..ContentAlignment和V..ContentAlignment说明内容(文本)在label控件中的行为。Label控件比上面建议的TextBlock有更多的功能,我必须承认,我自己主要使用TextBlock。我的意思是水平/垂直对齐工作正常,但背景颜色没有任何不同。但我(已经)投票给你的答案+1,因为它可能对其他人有用。@MichelKeijzers抱歉,我真的不知道,它在这里起作用。奇怪,没问题。。。另一个解决方案奏效了。。。谢谢你的回答和思考。我编辑了我的示例,但似乎仍然不起作用。水平对齐添加也没有任何区别。@MichelKeijzers在这里水平拉伸很好,默认字体大小。如果出于某种原因希望它覆盖整个屏幕,也可以添加VerticalAlignment=“Stretch”。H..ContentAlignment和V..ContentAlignment说明内容(文本)在label控件中的行为。Label控件比上面建议的TextBlock有更多的功能,我必须承认,我自己主要使用TextBlock。我的意思是水平/垂直对齐工作正常,但背景颜色没有任何不同。但我(已经)投票给你的答案+1,因为它可能对其他人有用。@MichelKeijzers抱歉,我真的不知道,它在这里起作用。奇怪,一点问题都没有