我在Xamarin forms页面中有一个Label
,它从其视图模型接收其Text
,而文本包含\n
字符。我该如何使Label
自动将文本拆分成两行?
我在Xamarin forms页面中有一个Label
,它从其视图模型接收其Text
,而文本包含\n
字符。我该如何使Label
自动将文本拆分成两行?
非常简单,只需添加以下 Unicode 代替 \n
例如:
Text="General Studies - I"
解决这个问题的一种方法是在您的虚拟机中将 '\n' 替换为 System.Environment.NewLine
string Text = "Text first line\nText second line".Replace("\n", System.Environment.NewLine);
你可以像这样做:
Text = "First line string
Second line string"
很可能是你的代码:
<Label FontSize="Medium" TextColor="Gray" Text="{translation:TranslationResource MyExpertsView_NoExpertsText}" IsVisible="{Binding IsNoExpertsFound}"></Label>
由于您的文本是从资源文件中检索出来的,Label
的 Text
属性将输入视为纯文本,并且不允许任何转义字符。
您可以考虑对TranslationResource
中的字符串进行预处理(将所有 \n 替换为换行符)。
如果你想在ViewModel中更改它,可以使用这个方法。它将更新字符串中的所有\n,而string.Replace只会更改第一个出现。
// Replace \n to Environtment.NewLine
public string StringUpdateNewLineFormat(string sentences)
{
return Regex.Replace(sentences, @"^""|""$|\\n?", System.Environment.NewLine);
}}
我只是使用\n
,我正在使用XAML,并且通过标签上的Binding
绑定文本。