Answers:
该Label
控件不直接支持WPF中的文本换行。您应该改用a 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
使用TextBox
?- TextBlock
从WPF被命名为“ Avalon”以来一直是只读的。
Padding="5"
以匹配Label
表单上其他控件中的填充。请参阅下面的Rajesh答案。
通常你不能代替Label
了TextBlock
,只要你想使用的Target
属性(其将焦点设置于有针对性的使用在下面的示例代码键盘如ALT + C时控制),因为这是一个所有Label
真正过报价TextBlock
。
但是,a Label
使用a TextBlock
呈现文本(如果在Content
属性中放置了字符串,通常是这样);因此,您可以像这样TextBlock
在内部添加样式Label
:
<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>
您可以将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>
建议不要使用Label类,而建议使用TextBlock。这使您可以适当地设置TextWrapping。
您可以随时这样做:
label1.Content = new TextBlock() { Text = textBox1.Text, TextWrapping = TextWrapping.Wrap };
但是,如果所有这些“标签”仅用于显示文本,请改用a TextBlock
。
Label label1 = new Label() { Content = new TextBlock() { Text = caption, TextWrapping = TextWrapping.Wrap }, FontWeight = FontWeights.Normal };
试试这个
lblresult.Content = lblresult.Content + "prime are :" + j + "\n";
IsReadOnly="true"
模仿标签:)