#c# #xamarin #xamarin.forms #label
Вопрос:
Я хочу добавить форматированный текст или форматированный текст в Label
любое текстовое поле в моем проекте Xamarin Forms. Я пробовал использовать отдельные метки для текста , а также использовать WebView
и т. Д. Но ни один из них не сработал. Использование a Webview
как-то работало, но его нужно было обновлять каждый раз, когда содержимое менялось. Для использования AJAX с WebView
потребуется веб-сервер, поэтому он не может работать локально/автономно.
Я просто хочу добавить форматированный текст Label
в режиме только для чтения или его можно изменить из кода во время выполнения.
Ответ №1:
Есть в основном 2 способа сделать это.
1] Вы можете использовать Span
свойство a Label
для ввода форматированного текста внутри Label
точно так же, как:
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="This is a " FontSize="15" TextColor="Blue"/>
<Span Text="Rich Text" FontSize="30" TextColor="Red"/>
<Span Text=" inside a Label in Xamarin Forms" FontSize="15" TextColor="Blue" />
</FormattedString>
</Label.FormattedText>
</Label>
Вы также можете использовать Binding
Span
любой стиль и другие свойства Label
inside Span
.
2] Второй метод заключается в том, чтобы использовать TextType
свойство Label
и установить для него значение TextType="Html"
. Но, пожалуйста, обратите внимание, что Label TextType="Html"
поддерживаемые HTML-теги ограничены в зависимости от базовой платформы, на которой работает приложение.
Мы можем определить HTML в коде C# или непосредственно в XAML.
Внутри кода C# за:
Label richTextLabel = new Label
{
Text = "This is <strong style="color:red">HTML</strong> text.",
TextType = TextType.Html
};
// OR
richTextLabel.Text = "This is <strong style="color:red">HTML</strong> text."
richTextLabel.TextType = TextType.Html;
// In XAML set Label Name as <Label x:Name="richTextLabel" />
В XAML
<Label Text="This is amp;<strong style=amp;quot;color:redamp;quot;amp;>HTMLamp;</strongamp;> text."
TextType="Html" />
<!--The symbols <, >, " needs to be escaped -->
RE: Обратитесь к этому для получения дополнительной документации.
Вывод: Использование первого метода Span
намного надежнее, так как все будет отображаться в виде кода. Во втором методе большая часть HTML-разметки не поддерживается Label
на разных базовых платформах. Следовательно, рекомендуется первый метод.