Xamarin Forms - 多行文本截断

10

截断标签文本可以使其保持单行。应用程序显示说明,需要显示2-3行,但Xamarin"LineBreakMode=TailTruncation"将其截断并限制为一行。有没有办法截断标签文本并显示多行。如果文本不适合n行,则应将其截断。

<Label LineBreakMode="TailTruncation" FontSize = "20" Text="Multi line Text" />

感谢您的选择。

SO是一个问答网站。为了得到一个好的答案,你应该先尝试提出一个好问题。你所发布的是一份要求清单,而不是一个问题。 - Jason
这是 Xamarin Forms 的限制,因为原生 Android 支持多行截断。在原生 Android 中,我们可以使用 maxLines。如果您无法回答问题,这并不意味着它不是一个问题。 - PEHLAJ
3个回答

13

自从Xamarin.Forms 3.3版本以来,为此功能引入了一个新的属性。它叫做MaxLines

以下是一些C#代码示例:

var yourLabel = new Label
{
    LineBreakMode = LineBreakMode.TailTruncation,
    Text = "Your text",
    MaxLines = 2
};

以下是XAML的示例:

<Label
    LineBreakMode="TailTruncation"
    Text="Your text"
    MaxLines="2" />

有关更多信息,请参见https://learn.microsoft.com/de-de/dotnet/api/xamarin.forms.label.maxlines?view=xamarin-forms


3

嗨@user12345,这对你总是有效吗? 我已经实现了相同的渲染器,但在更新了我的项目中的Xamarin.Forms之后,它不再起作用。我在这里描述了这个问题(https://dev59.com/06Tja4cB1Zd3GeqPI-Qw) - Gold.strike

1

在iOS中使用UILineBreakMode尝试自定义标签:

//iOS
public class CustomMultiLineLabelRenderer : LabelRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
    {
         base.OnElementChanged(e);

         MultiLineLabel multiLineLabel = (MultiLineLabel)Element;

         if (multiLineLabel != null && multiLineLabel.Lines != -1)
         {
              Control.Lines = multiLineLabel.Lines;
              Control.LineBreakMode = UIKit.UILineBreakMode.TailTruncation;
         }
    }
}

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