如何在Xamarin.Forms标签中添加换行?

4
这里是我想要做的事情:
<Label Text="Choose By\nOne\nTwo" Margin="0,10,0,0" />

然而,这样做的唯一效果就是在标签中使字符 \n 出现两次。有没有办法将换行符作为标签文本的一部分添加进去呢?

3个回答

11

你应该使用

<Label Text="Choose By &#10;One &#10;Two" Margin="0,10,0,0" />

结果看起来会像这样:\n

在此输入图片描述


仍然适用于 Xamarin Forms 5(预发布版)。 - chri3g91
如果您的数据来自视图模型,则此方法无法正常工作。 - suisgrand

2

\n替换为&#x0a;。或者设置更详细的模式,例如:

<Label Margin="0,10,0,0">
    <Label.Text>
        Choose By
        One
        Two
    </Label.Text>
</Label>

谢谢你的回答。我会去查看一下。 - Alan2

2
我刚刚遇到这个问题,但是我需要从服务器向设备发送字符串,并且需要一种方法来保留文本中的换行符。最终我不得不在设备上处理文本,并查找我的特殊字符<THIS IS A LINE FEED>,并将其替换为Environment.NewLine
因此,可以像下面这样实现:
在你的XAML中:
<Label Text="{Binding Something}" Margin="0,10,0,0" />

或者

<Label x:Name="LabelMy" Margin="0,10,0,0" />

然后在代码后台或ViewModel中:

string normalText = "Choose By\nOne\nTwo";

string fixedText = normalText.Replace("\n", Environment.NewLine);

ViewModel.Something = fixedText;

//OR

LabelMy.Text = fixedText;

4
@Alan2 在你给每个答案投反对票之前,能否告诉我哪些地方不起作用呢? - hvaughan3
我并没有给你点踩。等我回到工作岗位后,我会查看这些答案。感谢你抽出时间来提供答案。 - Alan2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接