如何使用WPF将文本包装到标签中?

我有一个TextBox和一个标签。 点击一个按钮后,我执行下面的代码:

 label1.Content = textbox1.Text; 

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


Label控件不直接支持WPF中的文本换行。 您应该改用TextBlock 。 (当然,如果您愿意,您可以将TextBlock放置在Label控件中。)

示例代码:

<TextBlock TextWrapping="WrapWithOverflow">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec adipiscing
    nulla quis libero egestas lobortis. Duis blandit imperdiet ornare. Nulla
    ac arcu ut purus placerat congue. Integer pretium fermentum gravida.
</TextBlock>

通常,您无法使用TextBlock替换Label ,因为您希望使用Target属性(在使用键盘时将焦点设置为目标控件,例如下面的示例代码中的ALT + C),因为这是Label实际上提供的TextBlock

但是, Label使用TextBlock来呈现文本(如果字符串放置在Content属性中,通常是这样); 因此,您可以为Label内的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" />

这样你就可以保持Label的功能,同时也可以包装文本。


我使用了下面的代码。

    <Label>
        <Label.Content>
            <AccessText TextWrapping="Wrap" Text="xxxxx"/>
        </Label.Content>
    </Label>
链接地址: http://www.djcxy.com/p/50515.html

上一篇: How can I wrap text in a label using WPF?

下一篇: Is there a way to display formatted rich text in WPF datagrid?