Wie füge ich einem WPF-Label Text im Code hinzu?

119

Ich fühle mich dumm, kann aber nicht herausfinden, wie man einem WPF-Label-Steuerelement im Code einen Text hinzufügt. Wie folgt für einen TextBlock:

DesrTextBlock.Text = "some text";

Was ist die entsprechende Eigenschaft in Label dafür?

DesrLabel.??? = "some text"; //something like this
rem
quelle

Antworten:

188

Versuchen Sie es DesrLabel.Content. Es ist der WPF-Weg.

Daniel A. White
quelle
7
Es ist eigentlich nur die ContentControl-Methode.
Scott M.
4
Das scheint ein wenig widersprüchlich, da die Eigenschaft aufgerufen wird , Textfür eine , TextBoxaber nicht für ein TextBlock...
BlueRaja - Danny Pflughoeft
9
@ BlueRaja-DannyPflughoeft Es besteht keine Verpflichtung, dass der Inhalt eines Labels Text ist. Es ist vom Typ object, so dass Sie es zu einem beliebigen WPF- oder .NET-Typ machen können - eine Schaltfläche, ein Bild, ein grünes Rechteck, auch SqlDataReaderwenn Sie es wirklich wollen! (obwohl genau das, was das in einem Label darstellen würde, bin ich mir nicht sicher ...)
Stephen Holt
Beim Aktualisieren von .Content für ein WPF-Label wird das Label nicht immer aktualisiert. Wie erzwingen wir eine Aktualisierung, wenn die Steuerung der Benutzeroberfläche nachgibt?
David Jeske
@ DavidJeske bist du in einem anderen Thread? Dispatching könnte der Trick sein
Daniel A. White
27

In normalen winForms wird der Wert des Label-Objekts geändert durch:

myLabel.Text= "Your desired string";

In der WPF-Label-Steuerung müssen Sie jedoch die .content-Eigenschaft der Label-Steuerung verwenden, z.

myLabel.Content= "Your desired string";
Utkal Sinha
quelle
6

Ich glaube, Sie möchten die ContentEigenschaft festlegen . Hier finden Sie weitere Informationen darüber, was einem Etikett zur Verfügung steht.

Mark Avenius
quelle
4

Sie können die Content-Eigenschaft für so ziemlich alle visuellen WPF-Steuerelemente verwenden, um auf die darin enthaltenen Inhalte zuzugreifen. Es gibt eine Hierarchie von Klassen, zu denen die Steuerelemente gehören, und alle Nachkommen von ContentControl funktionieren auf diese Weise.

RichardW1001
quelle
0

Sie können das TextBlock-Steuerelement verwenden und die Texteigenschaft zuweisen.

Davide Piras
quelle
-2

Label myLabel = new Label (); myLabel.Content = "Hello World!";

Mito
quelle
3
Während dieser Code die Frage beantworten kann, ist es besser, einen Kontext einzuschließen, zu erklären, wie er funktioniert, und zu beschreiben, wann er verwendet werden soll. Nur-Code-Antworten sind auf lange Sicht nicht sinnvoll.
Ryanyuyu