How can I wrap text in a label using WPF? How can I wrap text in a label using WPF? wpf wpf

How can I wrap text in a label using WPF?


The Label control doesn't directly support text wrapping in WPF. You should use a TextBlock instead. (Of course, you can place the TextBlock inside of a Label control, if you wish.)

Sample code:

<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>


Often you cannot replace a Label with a TextBlock as you want to the use the Target property (which sets focus to the targeted control when using the keyboard e.g. ALT+C in the sample code below), as that's all a Label really offers over a TextBlock.

However, a Label uses a TextBlock to render text (if a string is placed in the Content property, which it typically is); therefore, you can add a style for TextBlock inside the Label like so:

<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" />

This way you get to keep the functionality of a Label whilst also being able to wrap the text.


I used the following code.

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