如何在WPF中的标签文本中添加换行符,如下所示?
<Label>Lorem
ipsum</Label>
答案 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)
,您可以使用值" "
或"
"
例如:
<Label Content="Lorem ipsum" />
(“10”是换行符的ASCII码)
或
<Label Content="Lorem
ipsum" />
(“A”是十六进制换行符的ASCII码)
答案 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
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个字符一起使用,不要留空格以获取您想要的换行符。