Comment ajouter du texte à une étiquette WPF dans le code?

120

Je me sens stupide mais je ne peux pas savoir comment ajouter un texte à un contrôle WPF Label dans le code. Comme suit pour un TextBlock:

DesrTextBlock.Text = "some text";

Quelle est la propriété équivalente dans Label pour le faire?

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

Réponses:

189

Essayez DesrLabel.Content. C'est la manière WPF.

Daniel A. White
la source
7
c'est juste la manière ContentControl en fait.
Scott M.
4
Cela semble un peu incohérent, étant donné que la propriété est appelée Textpour un TextBoxmais pas pour un TextBlock...
BlueRaja - Danny Pflughoeft
9
@ BlueRaja-DannyPflughoeft il n'y a aucune obligation pour le contenu d'un Label d'être du texte. Il est de type object, vous pouvez donc en faire n'importe quel type WPF ou .NET que vous aimez - un bouton, une image, un rectangle vert, même SqlDataReadersi vous le souhaitez vraiment! (bien que ce que cela représenterait dans un label, je ne suis pas trop sûr ...)
Stephen Holt
lors de la mise à jour .Content pour une étiquette WPF, il n'actualise pas toujours l'étiquette. Comment forcer l'actualisation lorsque le contrôle cède à l'interface utilisateur?
David Jeske
@DavidJeske êtes-vous dans un autre fil de discussion? La répartition pourrait être l'astuce
Daniel A. White
27

Dans winForms normal, la valeur de l'objet Label est modifiée par,

myLabel.Text= "Your desired string";

Mais dans le contrôle WPF Label, vous devez utiliser la propriété .content du contrôle Label par exemple,

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

Je pense que vous souhaitez définir la Contentpropriété. Cela a plus d'informations sur ce qui est disponible pour une étiquette.

Mark Avenius
la source
4

Vous pouvez utiliser la propriété Content sur à peu près tous les contrôles WPF visuels pour accéder aux éléments qu'ils contiennent. Il existe une hiérarchie de classes auxquelles appartiennent les contrôles, et tous les descendants de ContentControl fonctionneront de cette manière.

RichardW1001
la source
0

vous pouvez utiliser le contrôle TextBlock et affecter la propriété text.

Davide Piras
la source
-2

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

mito
la source
3
Bien que ce code puisse répondre à la question, il serait préférable d'inclure un contexte, d'expliquer comment il fonctionne et de décrire quand l'utiliser. Les réponses basées uniquement sur le code ne sont pas utiles à long terme.
ryanyuyu