我有一个文本框和一个标签。点击按钮后,执行以下代码:

 label1.Content = textbox1.Text; 

我的问题是,我如何启用标签的文本包装?可能有太多的文本显示在一行上,如果是这种情况,我希望它自动换行到多行。


当前回答

 <Label x:Name="datetimeofmsg" 
           HorizontalAlignment="Left" Margin="4.286,55,0,0" 
           VerticalAlignment="Top" Background="{x:Null}" 
           FontWeight="Bold" Width="61.714" Height="20" Foreground="White">
        <Label.Content>
            <AccessText TextWrapping="Wrap"/>
        </Label.Content>
    </Label>

其他回答

我使用了以下代码。

    <Label>
        <Label.Content>
            <AccessText TextWrapping="Wrap" Text="xxxxx"/>
        </Label.Content>
    </Label>

你可以把一个TextBlock内的标签:

<Label> 
  <TextBlock Text="Long Text . . . ." TextWrapping="Wrap" /> 
</Label> 

通常你不能用一个TextBlock替换标签,因为你想使用目标属性(它设置焦点到目标控件时使用键盘,例如ALT+C在下面的示例代码),因为这是一个标签真正提供了一个TextBlock。

然而,一个标签使用TextBlock来呈现文本(如果一个字符串被放在内容属性,这通常是);因此,你可以添加一个风格的TextBlock内的标签,就像这样:

<Label              
    Content="_Content Text:"
    Target="{Binding ElementName=MyTargetControl}">
    <Label.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="TextWrapping" Value="Wrap" />
        </Style>
    </Label.Resources>
 </Label>
 <CheckBox x:Name = "MyTargetControl" />

通过这种方式,您可以保持标签的功能,同时也能够包装文本。

试试这个

lblresult.Content = lblresult.Content + "prime are :" + j + "\n";

而不是使用标签类,我建议使用TextBlock。这允许您适当地设置TextWrapping。

你可以做:

 label1.Content = new TextBlock() { Text = textBox1.Text, TextWrapping = TextWrapping.Wrap };

然而,如果所有这些“标签”是为了显示文本,使用TextBlock代替。