在c# Code WPF中为标签添加TextBlock
本文关键字:标签 添加 TextBlock Code WPF | 更新日期: 2023-09-27 18:09:49
在我的代码中,我创建了一个新的标签和格式化它,并使其成为堆叠面板的一个子。但是在标签的内部,我需要添加一个文本块,我有麻烦,找出如何做到这一点。
仅使用代码我需要由代码创建的WPF像这样工作:
<Label Background="#000000" Foreground="#FFFFFF">
<TextBlock TextWrapping="Wrap" Text="Text Here"/>
</Label>
但是我不知道如何在代码中获得标签内部的TextBlock,我认为会起作用的是不工作,因为它是一个标签:
NewLabel.Children.Add(NewTextBlock);
但是当我用它来添加NewLabel到stackkedpanel时,这是有效的。
我需要这个工作的全部原因是因为我需要在标签中进行文本换行,但不能只使用TextBlock或其他控件。
只需将TextBlock设置为标签的内容就可以实现您的要求。
Label lbl = new Label ();
TextBlock txtBlock = new TextBlock ();
txtBlock.TextWrapping = TextWrapping.Wrap;
lbl.Content = txtBlock;
你也可以为你的资源添加一个"Label"的样式,它包含一个默认的DataTemplate类型的字符串。因此,任何Label中的所有字符串内容都将被包装。
<Application.Resources>
<Style TargetType="Label">
<Style.Resources>
<DataTemplate xmlns:sys="clr-namespace:System;assembly=mscorlib" DataType="{x:Type sys:String}">
<TextBlock TextWrapping="Wrap" Text="{Binding}" />
</DataTemplate>
</Style.Resources>
</Style>
</Application.Resources>
那么你所需要做的就是设置字符串Content。
<Label Content="A very long string for my Label" />
或
var Label = new Label { Content = "A very long string for my Label" }