如何在代码中向 WPF 标签添加文本?

146
我感觉很愚蠢,但是不知道如何在代码中将文本添加到WPF标签控件中。就像对于TextBlock一样:
DesrTextBlock.Text = "some text";
DesrLabel.??? = "some text"; //something like this
7个回答

224

尝试使用DesrLabel.Content,这是WPF的方式。


8
这其实就是 ContentControl 的做法。 - Scott M.
4
鉴于一个TextBox的属性名是“Text”,而TextBlock的属性名不是“Text”,这似乎有些不一致。 - BlueRaja - Danny Pflughoeft
10
@BlueRaja-DannyPflughoeft,标签的内容不一定是文本。它是“object”类型,因此您可以将其设置为任何WPF或.NET类型 - 按钮、图像、绿色矩形,甚至是SqlDataReader(如果您真的想这样做!)尽管不太确定在标签中表示什么意思。 - Stephen Holt
当更新 WPF 标签的 .Content 时,它并不总是刷新标签。当控件让出 UI 时,我们如何强制刷新? - David Jeske
@DavidJeske 你在另一个线程吗?分派可能是个好办法。 - Daniel A. White
@DavidJeske 我个人认为最好的方法是将.Content绑定到代码后台的属性,并为该属性实现INotifyPropertyChanged(我知道回答晚了,但其他人可能会遇到这个问题 - 就像我一样 :-)) - Tom667

33
在普通的WinForms中,Label对象的值可以通过以下方式进行更改:
myLabel.Text= "Your desired string";

但在WPF标签控件中,您必须使用标签控件的.content属性。例如:

.content属性

myLabel.Content= "Your desired string";

6

我相信你想要设置Content属性。 这里有更多关于标签可用的信息。


4

您可以使用几乎所有可视化WPF控件上的Content属性来访问其中的内容。这些控件属于一系列类的层次结构,任何ContentControl的后代都可以以此方式工作。


0
你可以使用TextBlock控件并分配文本属性。

0
不要忘记在你的MainWindow.xaml中添加x:name。

-2

标签 myLabel = new 标签 (); myLabel.Content = "你好,世界!";


4
虽然这段代码可以回答问题,但最好还是加入一些上下文,解释其工作原理,并描述何时使用它。仅有代码的回答从长远来看并不有用。 - ryanyuyu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接