WPF标签中的换行符?

时间:2009-01-27 15:17:39

标签: wpf label newline

如何在WPF中的标签文本中添加换行符,如下所示?

<Label>Lorem 
  ipsum</Label>

6 个答案:

答案 0 :(得分:112)

<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

您需要使用TextBlock,因为TextBlock作为子项接受Inline对象的集合。所以你给TextBlock元素三个内联项:Run Text =“Lorem”,LineBreak和Run Text =“ipsum”。

您无法执行以下操作:

<Label>Lorem<LineBreak/>ipsum</Label>`

因为标签接受一个内容子元素。

另外,不确定您的用例是什么,但请注意我在Label元素中放置了一个TextBlock。这是重复的吗?不是真的,取决于你的需要。这是一篇关于两个元素之间差异的好文章:Difference between Label and TextBlock

答案 1 :(得分:89)

在WPF中

,您可以使用值"&#10;""&#xA;"

例如:

<Label Content="Lorem&#10;ipsum" />

(“10”是换行符的ASCII码)

<Label Content="Lorem&#xA;ipsum" />

(“A”是十六进制换行符的ASCII码)

Example, with a border arround label to show boundry

答案 2 :(得分:6)

在ViewModel或Model中执行此操作时,我发现使用Environment.NewLine具有最一致的结果,包括本地化。它也应该直接在View中工作,但我还没有测试过。

示例:

在视图中

<Label Content="{Binding SomeStringObject.ParameterName}" />

在ViewModel中:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";

答案 3 :(得分:2)

如何向控件(例如按钮)中添加多行工具提示的示例。工具提示的宽度受限制,因此如果句子太宽,它将自动换行。

<!-- Button would need some properties to make it clickable.-->
<Button>
   <Button.ToolTip>
      <TextBlock Text="Line 1&#x0a;Line 2" MaxWidth="300" TextWrapping="Wrap"/>
    </Button.ToolTip>
</Button>

在VS2019 + .NET 4.6.1 + WPF上测试。

答案 4 :(得分:1)

<Label xml:space="preserve">text content
another line</Label>

似乎也可以工作

答案 5 :(得分:0)

我知道换行符可以在文本块中使用。但是,如果您要在标签中使用换行符(如问题所述),请在字符串中使用它。我之间有空格,因为否则将不允许我在此评论中发布序列。 &#x a; 将这5个字符一起使用,不要留空格以获取您想要的换行符。