我怎样才能在包装使用WPF标签的文本?

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

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>

通常情况下,你不能代替Label与一个TextBlock ,只要你想使用的Target属性(使用键盘如ALT + C在下面的示例代码时,它设置焦点目标控制),因为这是所有的一个Label确实提供了超过一个TextBlock

然而, Label使用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>

你可以把一个TextBox标签里面,是这样的:

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

然而,如果这一切的“标签”是是显示文本,使用一个TextBlock来代替。

分类:C# 时间:2012-01-01 人气:2
分享到:

相关文章

  • 传递从WPF标签的数据功能 2012-01-21

    我有一个WPF应用程序包含一些WPF标签的单一形式. 三个翼片的用于收集来自用户的数据. 最后一个标签都有一个OK按钮,点击时进行一些计算. 如何我通过对各种标签的文本框的数据到位于ButtonClick事件的功能? 我创建的函数. 我只需要知道如何从选项卡上的文本框参考值. --------------解决方案------------- 给控件的名称与NAME ="myTextBox"属性,然后Visual Studio或Blend会在后台代码创建标识符的控件的形式,你可以通过它们的

  • 使用System.Drawing.Font用WPF标签 2012-12-16

    我有一个WPF标签控制,我想更改使用一些旧的代码提供的System.Drawing.Font对象的外观. 我已经能够设置大部分属性,但我挣扎删除线和下划线. 到目前为止,我有: System.Drawing.Font font = FontFromLegacyCode(); System.Windows.Controls.Label label = new System.Windows.Controls.Label(); label.FontFamily = new System.Windows

  • WPF标签内容:如何避免提及Alt键? 2013-08-23

    我已经定义了WPF标签与内容="Label_Label". 虽然显示显示"LabelLabel". 第一个"_"被认为是"Alt键"参考. 在我的实际需要,我分配的内容,动态标签,所以,请注明的解决这个问题. <Label Content="Label_Label" Height="28" HorizontalAlignment="Left" Margin=&q

  • WPF标签内容alignement 2014-04-11

    在WPF标签,对准这样的,即如果字体大小增加时,标签尺寸的增大在底部右汉字. 是否有可能使它在顶部右汉字方向增加吗? PS. 标签包含在Canvas . --------------解决方案------------- 如果您有Canvas.Top指定范围内的画布标签的垂直位置时,它会成长向下时,字体大小增加. 如果您有Canvas.Bottom指定垂直位置也将增长向上. 这同样适用于Canvas.Left和Canvas.Right. 设置控件的底部和左属性. <Label Canvas.Bott

  • 如何根据2个或更多的WPF文本框填充WPF标签? 2014-09-28

    我有一个有URL段3 WPF文本框. 我想有这些段合并,看到一个WPF标签中的完整U​​RL. 如何我可以通过XAML实现它? 此外,我希望当用户改变文本框更新此标签. 谢谢! --------------解决方案------------- 使用MultiBinding用的StringFormat. 您可能还需要UpdateSourceTrigger设置为PropertyChanged的为成员的绑定. 这将确保该合并案文被更新在用户键入文本,而不是他离开文本框后只. 你需要的是用的StringF

  • 格式问题试图创建一个WPF标签模板,让文本选择 2014-01-02

    我有一个要求,让选择在只读屏幕上显示的文字. 一个简单的解决方案,我们的开发商想出了用一个TextBox ,而不是一个标签或TextBlock的,具有以下样式: <Style x:Key="ControlData" TargetType="{x:Type TextBox}"> <Setter Property="Background" Value="Transparent" /> <Setter

  • WPF标签到文本框 2012-04-28

    在WPF但IM即时通讯漂亮的小白认真努力掌握它:P 香港专业教育学院一直在努力创造一个显示一个标签/文本块的控制,但一旦用户将鼠标悬停/单击控件,一个文本框显示,而不是这样的值可以进行编辑. 我一直在努力的Visible属性绑定到布尔在代码隐藏,这是使用委托的鼠标悬停和鼠标离开,并获得/引发LostFocus更新,但它没有工作. 此外,我试图用一个简单的风格,也势必将Visible属性为布尔代码隐藏...没有工作无论是. 最后,我也跟着什么WPF:选中时标签为文本框提示,使用的ControlTe

  • 需要强制在WPF标签刷新 2012-05-05

    我想提出一个Web服务的异步调用. 因为它可能需要几秒钟有一个用于让用户知道发生了什么状态标签. 但是,即使调用的是异步的第一个电话,似乎阻止了几秒钟,状态标签的时间太长得到更新. 在我的WinForms可能会强制标签刷新(使用Update()我认为),但不是在WPF. 何超简单的方法来得到这个工作? 谢谢,格里 --------------解决方案------------- 你可以移动整个调用逻辑成QueueWorkUserItem或BackgroundWorker的块. 这样,第一个代理初始

  • WPF:如何接受字符串和FrameworkElement上的依赖项属性(如WPF标签呢)? 2013-01-23

    我创建一个自定义的WPF控件,应该有几个内容的插槽. 我想用户能够使用任一字符串或FrameworkElement的作为属性的值,例如: <!-- MyHeading is a string --> <MyControl MyHeading="Hello World" /> <MyControl> <!-- MyHeading is a FrameworkElement --> <MyControl.MyHeading> &l

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.390 (s). 10 q(s)