我有一个文本框和一个标签。点击按钮后,执行以下代码:
label1.Content = textbox1.Text;
我的问题是,我如何启用标签的文本包装?可能有太多的文本显示在一行上,如果是这种情况,我希望它自动换行到多行。
我有一个文本框和一个标签。点击按钮后,执行以下代码:
label1.Content = textbox1.Text;
我的问题是,我如何启用标签的文本包装?可能有太多的文本显示在一行上,如果是这种情况,我希望它自动换行到多行。
当前回答
在WPF中,Label控件不直接支持文本换行。你应该使用一个TextBlock代替。(当然,你可以把TextBlock内的标签控制,如果你愿意。)
示例代码:
<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>
其他回答
我使用了以下代码。
<Label>
<Label.Content>
<AccessText TextWrapping="Wrap" Text="xxxxx"/>
</Label.Content>
</Label>
我们需要放一些控件,可以包装文本,如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>
通常你不能用一个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" />
通过这种方式,您可以保持标签的功能,同时也能够包装文本。
你可以把一个TextBlock内的标签:
<Label>
<TextBlock Text="Long Text . . . ." TextWrapping="Wrap" />
</Label>
在WPF中,Label控件不直接支持文本换行。你应该使用一个TextBlock代替。(当然,你可以把TextBlock内的标签控制,如果你愿意。)
示例代码:
<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>