我有一个文本框和一个标签。点击按钮后,执行以下代码:
label1.Content = textbox1.Text;
我的问题是,我如何启用标签的文本包装?可能有太多的文本显示在一行上,如果是这种情况,我希望它自动换行到多行。
我有一个文本框和一个标签。点击按钮后,执行以下代码:
label1.Content = textbox1.Text;
我的问题是,我如何启用标签的文本包装?可能有太多的文本显示在一行上,如果是这种情况,我希望它自动换行到多行。
当前回答
我使用了以下代码。
<Label>
<Label.Content>
<AccessText TextWrapping="Wrap" Text="xxxxx"/>
</Label.Content>
</Label>
其他回答
而不是使用标签类,我建议使用TextBlock。这允许您适当地设置TextWrapping。
你可以做:
label1.Content = new TextBlock() { Text = textBox1.Text, TextWrapping = TextWrapping.Wrap };
然而,如果所有这些“标签”是为了显示文本,使用TextBlock代替。
我们需要放一些控件,可以包装文本,如textblock/textbox
<Label Width="120" Height="100" >
<TextBlock TextWrapping="Wrap">
this is a very long text inside a textblock and this needs to be on multiline.
</TextBlock>
</Label>
<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>
你可以把一个TextBlock内的标签:
<Label>
<TextBlock Text="Long Text . . . ." TextWrapping="Wrap" />
</Label>
要在标签控件中包装文本,更改标签模板如下所示:
<Style x:Key="ErrorBoxStyle" TargetType="{x:Type Label}">
<Setter Property="BorderBrush" Value="#FFF08A73"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Background" Value="#FFFFE3DF"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true" CornerRadius="5" HorizontalAlignment="Stretch">
<TextBlock TextWrapping="Wrap" Text="{TemplateBinding Content}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>