Xamarin.Forms Etikett

Download Sample Das Beispiel herunterladen

Anzeigen von Text in Xamarin.Forms

Die Label Ansicht wird zum Anzeigen von Text sowohl für einzelne als auch für mehrzeilige Elemente verwendet. Beschriftungen können Textdeko, farbigen Text und benutzerdefinierte Schriftarten (Familien, Größen und Optionen) verwenden.

Text-Dekorationen

Unterstreichungs- und Durchstreichungstext-Dekorationen können auf Label Instanzen angewendet werden, indem sie die Label.TextDecorations Eigenschaft auf ein oder TextDecorations mehrere Enumerationsmmber festlegen:

  • None
  • Underline
  • Strikethrough

Im folgenden XAML-Beispiel wird das Festlegen der Label.TextDecorations Eigenschaft veranschaulicht:

<Label Text="This is underlined text." TextDecorations="Underline"  />
<Label Text="This is text with strikethrough." TextDecorations="Strikethrough" />
<Label Text="This is underlined text with strikethrough." TextDecorations="Underline, Strikethrough" />

Der entsprechende C#-Code lautet:

var underlineLabel = new Label { Text = "This is underlined text.", TextDecorations = TextDecorations.Underline };
var strikethroughLabel = new Label { Text = "This is text with strikethrough.", TextDecorations = TextDecorations.Strikethrough };
var bothLabel = new Label { Text = "This is underlined text with strikethrough.", TextDecorations = TextDecorations.Underline | TextDecorations.Strikethrough };

Die folgenden Screenshots zeigen die Aufzählungsmitglieder, die TextDecorations auf Label Instanzen angewendet wurden:

Labels with Text Decorations

Hinweis

Text-Dekorationen können auch auf Span Instanzen angewendet werden. Weitere Informationen zur Span Klasse finden Sie unter "Formatierter Text".

Transformieren von Text

Eine Label kann die Groß-/Kleinschreibung des Texts transformieren, der in der Text Eigenschaft gespeichert ist, indem die TextTransform Eigenschaft auf einen Wert der TextTransform Enumeration festgelegt wird. Diese Enumeration weist vier Werte auf:

  • None gibt an, dass der Text nicht transformiert wird.
  • Default gibt an, dass das Standardverhalten für die Plattform verwendet wird. Dies ist der Standardwert der TextTransform-Eigenschaft.
  • Lowercase gibt an, dass der Text in Kleinbuchstaben umgewandelt wird.
  • Uppercase gibt an, dass der Text in Großbuchstaben umgewandelt wird.

Das folgende Beispiel zeigt das Transformieren von Text in Großbuchstaben:

<Label Text="This text will be displayed in uppercase."
       TextTransform="Uppercase" />

Der entsprechende C#-Code lautet:

Label label = new Label
{
    Text = "This text will be displayed in uppercase.",
    TextTransform = TextTransform.Uppercase
};

Zeichenabstand

Der Zeichenabstand kann auf Label Instanzen angewendet werden, indem die Label.CharacterSpacing Eigenschaft auf einen double Wert festgelegt wird:

<Label Text="Character spaced text"
       CharacterSpacing="10" />

Der entsprechende C#-Code lautet:

Label label = new Label { Text = "Character spaced text", CharacterSpacing = 10 };

Das Ergebnis ist, dass Zeichen im Text, der durch den Label Abstand von gerätenunabhängigen CharacterSpacing Einheiten angezeigt wird, voneinander getrennt sind.

Zeilenumbrüche

Es gibt zwei Standard Techniken zum Erzwingen von Text in einer Label neuen Zeile aus XAML:

  1. Verwenden Sie das Unicode-Zeilenvorschubzeichen, das " " lautet.
  2. Geben Sie Ihren Text mithilfe der Eigenschaftselementsyntax an.

Der folgende Code zeigt ein Beispiel für beide Techniken:

<!-- Unicode line feed character -->
<Label Text="First line &#10; Second line" />

<!-- Property element syntax -->
<Label>
    <Label.Text>
        First line
        Second line
    </Label.Text>
</Label>

In C# kann Text in eine neue Zeile mit dem Zeichen "\n" erzwungen werden:

Label label = new Label { Text = "First line\nSecond line" };

Farben

Beschriftungen können für die Verwendung einer benutzerdefinierten Textfarbe über die bindungsfähige TextColor Eigenschaft festgelegt werden.

Besondere Sorgfalt ist erforderlich, um sicherzustellen, dass Farben auf jeder Plattform verwendet werden können. Da jede Plattform unterschiedliche Standardwerte für Text- und Hintergrundfarben aufweist, müssen Sie darauf achten, einen Standardwert zu wählen, der jeweils funktioniert.

Im folgenden XAML-Beispiel wird die Textfarbe einer Label:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="TextSample.LabelPage"
             Title="Label Demo">
    <StackLayout Padding="5,10">
      <Label TextColor="#77d065" FontSize = "20" Text="This is a green label." />
    </StackLayout>
</ContentPage>

Der entsprechende C#-Code lautet:

public partial class LabelPage : ContentPage
{
    public LabelPage ()
    {
        InitializeComponent ();

        var layout = new StackLayout { Padding = new Thickness(5,10) };
        var label = new Label { Text="This is a green label.", TextColor = Color.FromHex("#77d065"), FontSize = 20 };
        layout.Children.Add(label);
        this.Content = layout;
    }
}

Die folgenden Screenshots zeigen das Ergebnis der Einstellung der TextColor Eigenschaft:

Label TextColor Example

Weitere Informationen zu Farben finden Sie unter "Farben".

Schriftarten

Weitere Informationen zum Angeben von Schriftarten in einem LabelFinden Sie unter "Schriftarten".

Abschneiden und Umbruch

Beschriftungen können so festgelegt werden, dass Text, der nicht auf eine Zeile passt, auf eine von mehreren Arten verarbeitet werden kann, die von der LineBreakMode Eigenschaft verfügbar gemacht wird. LineBreakMode ist eine Aufzählung mit den folgenden Werten:

  • HeadTruncation – schneidet den Kopf des Texts ab und zeigt das Ende an.
  • CharacterWrap – umschließt Text in eine neue Zeile an einer Zeichengrenze.
  • MiddleTruncation – zeigt den Anfang und das Ende des Texts an, wobei die Mitte durch eine Auslassungspunkte ersetzt wird.
  • NoWrap – umschließt keinen Text und zeigt nur so viel Text an, wie er in eine Zeile passen kann.
  • TailTruncation – zeigt den Anfang des Texts an und schneidet das Ende ab.
  • WordWrap – umschließt Text an der Wortgrenze.

Anzeigen einer bestimmten Anzahl von Zeilen

Die Anzahl der zeilen, die von einer Label angezeigt werden, kann durch Festlegen der Label.MaxLines Eigenschaft auf einen int Wert angegeben werden:

  • Wenn MaxLines "-1" der Standardwert ist, wird der Label Wert der LineBreakMode Eigenschaft berücksichtigt, um entweder nur eine Zeile, möglicherweise abgeschnitten oder alle Zeilen mit gesamtem Text anzuzeigen.
  • Wenn MaxLines 0 ist, wird dies Label nicht angezeigt.
  • Wenn MaxLines 1 ist, ist das Ergebnis identisch mit dem Festlegen der LineBreakMode Eigenschaft auf NoWrap, HeadTruncation, , oder TailTruncationMiddleTruncation. Dies Label gilt jedoch für den Wert der LineBreakMode Immobilie im Hinblick auf die Platzierung einer Auslassungspunkte, falls zutreffend.
  • Wenn MaxLines größer als 1 ist, wird die Label angegebene Anzahl von Zeilen angezeigt, wobei der Wert der LineBreakMode Eigenschaft im Hinblick auf die Platzierung einer Auslassungspunkte berücksichtigt wird, falls zutreffend. Das Festlegen der MaxLines Eigenschaft auf einen Wert größer als 1 hat jedoch keine Auswirkung, wenn die LineBreakMode Eigenschaft auf NoWrap".

Das folgende XAML-Beispiel veranschaulicht das Festlegen der MaxLines Eigenschaft für ein Label:

<Label Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facilisis nulla eu felis fringilla vulputate. Nullam porta eleifend lacinia. Donec at iaculis tellus."
       LineBreakMode="WordWrap"
       MaxLines="2" />

Der entsprechende C#-Code lautet:

var label =
{
  Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facilisis nulla eu felis fringilla vulputate. Nullam porta eleifend lacinia. Donec at iaculis tellus.", LineBreakMode = LineBreakMode.WordWrap,
  MaxLines = 2
};

Die folgenden Screenshots zeigen das Ergebnis der Einstellung der MaxLines Eigenschaft auf 2, wenn der Text lang genug ist, um mehr als 2 Zeilen zu belegen:

Label MaxLines Example

Anzeigen von HTML

Die Label Klasse verfügt über eine TextType Eigenschaft, die bestimmt, ob die Label Instanz Nur-Text oder HTML-Text anzeigen soll. Diese Eigenschaft sollte auf eines der Member der TextType Enumeration festgelegt werden:

  • Text gibt an, dass der Label Nur-Text angezeigt wird und der Standardwert der Label.TextType Eigenschaft ist.
  • Html gibt an, dass der Label HTML-Text angezeigt wird.

Daher können Instanzen HTML anzeigen, Label indem sie die Label.TextType Eigenschaft auf Html, und die Label.Text Eigenschaft auf eine HTML-Zeichenfolge festlegen:

Label label = new Label
{
    Text = "This is <strong style=\"color:red\">HTML</strong> text.",
    TextType = TextType.Html
};

Im obigen Beispiel müssen die doppelten Anführungszeichen im HTML-Code mithilfe des \ Symbols escapet werden.

In XAML können HTML-Zeichenfolgen aufgrund zusätzlicher Escapezeichen < und > Symbole unlesbar werden:

<Label Text="This is &lt;strong style=&quot;color:red&quot;&gt;HTML&lt;/strong&gt; text."
       TextType="Html"  />

Alternativ kann der HTML-Code in einem CDATA Abschnitt inlineiert werden:

<Label TextType="Html">
    <![CDATA[
    This is <strong style="color:red">HTML</strong> text.
    ]]>
</Label>

In diesem Beispiel wird die Label.Text Eigenschaft auf die HTML-Zeichenfolge festgelegt, die CDATA im Abschnitt inlineiert ist. Dies funktioniert, da die Text Eigenschaft für ContentProperty die Label Klasse ist.

Die folgenden Screenshots zeigen einen Label angezeigten HTML-Code:

Screenshots of a Label displaying HTML, on iOS and Android

Wichtig

Das Anzeigen von HTML in einer Label Datei ist auf die HTML-Tags beschränkt, die von der zugrunde liegenden Plattform unterstützt werden.

Formatierter Text

Beschriftungen machen eine FormattedText Eigenschaft verfügbar, die die Darstellung von Text mit mehreren Schriftarten und Farben in derselben Ansicht zulässt.

Die FormattedText Eigenschaft ist vom Typ FormattedString, die eine oder Span mehrere Instanzen umfasst, die über die Spans Eigenschaft festgelegt werden. Die folgenden Span Eigenschaften können zum Festlegen der visuellen Darstellung verwendet werden:

  • BackgroundColor – die Farbe des Spannhintergrunds.
  • CharacterSpacing vom Typ double: Abstand zwischen den Zeichen des Span-Texts.
  • Font – die Schriftart für den Text in der Spanne.
  • FontAttributes – die Schriftattribute für den Text in der Spanne.
  • FontFamily – die Schriftfamilie, zu der die Schriftart für den Text in der Spanne gehört.
  • FontSize – der Schriftgrad für den Text in der Spanne.
  • ForegroundColor – die Farbe für den Text in der Spanne. Diese Eigenschaft ist veraltet und wurde durch die TextColor Eigenschaft ersetzt.
  • LineHeight - der Multiplikator, der auf die Standardzeilenhöhe der Spanne angewendet werden soll. Weitere Informationen finden Sie unter "Zeilenhöhe".
  • Style – die Formatvorlage, die auf die Spanne angewendet werden soll.
  • Text – der Text der Spanne.
  • TextColor – die Farbe für den Text in der Spanne.
  • TextDecorations - die Dekorationen, die auf den Text in der Spanne angewendet werden sollen. Weitere Informationen finden Sie unter "Text decorations".

Die BackgroundColorEigenschaften , Textund Text bindungsfähige Eigenschaften verfügen über einen Standardbindungsmodus von OneWay. Weitere Informationen zu diesem Bindungsmodus finden Sie im Bindungsmodushandbuch im Standardbindungsmodus.

Darüber hinaus kann die GestureRecognizers Eigenschaft verwendet werden, um eine Sammlung von Gestikerkennungen zu definieren, die auf Gesten auf die Span.

Hinweis

Es ist nicht möglich, HTML in einem Span.

Im folgenden XAML-Beispiel wird eine FormattedText Eigenschaft veranschaulicht, die aus drei Span Instanzen besteht:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="TextSample.LabelPage"
             Title="Label Demo - XAML">
    <StackLayout Padding="5,10">
        ...
        <Label LineBreakMode="WordWrap">
            <Label.FormattedText>
                <FormattedString>
                    <Span Text="Red Bold, " TextColor="Red" FontAttributes="Bold" />
                    <Span Text="default, " Style="{DynamicResource BodyStyle}">
                        <Span.GestureRecognizers>
                            <TapGestureRecognizer Command="{Binding TapCommand}" />
                        </Span.GestureRecognizers>
                    </Span>
                    <Span Text="italic small." FontAttributes="Italic" FontSize="Small" />
                </FormattedString>
            </Label.FormattedText>
        </Label>
    </StackLayout>
</ContentPage>

Der entsprechende C#-Code lautet:

public class LabelPageCode : ContentPage
{
    public LabelPageCode ()
    {
        var layout = new StackLayout{ Padding = new Thickness (5, 10) };
        ...
        var formattedString = new FormattedString ();
        formattedString.Spans.Add (new Span{ Text = "Red bold, ", ForegroundColor = Color.Red, FontAttributes = FontAttributes.Bold });

        var span = new Span { Text = "default, " };
        span.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(async () => await DisplayAlert("Tapped", "This is a tapped Span.", "OK")) });
        formattedString.Spans.Add(span);
        formattedString.Spans.Add (new Span { Text = "italic small.", FontAttributes = FontAttributes.Italic, FontSize =  Device.GetNamedSize(NamedSize.Small, typeof(Label)) });

        layout.Children.Add (new Label { FormattedText = formattedString });
        this.Content = layout;
    }
}

Wichtig

Die Text Eigenschaft eines Objekts Span kann über die Datenbindung festgelegt werden. Weitere Informationen finden Sie unter Datenbindung.

Beachten Sie, dass ein Span Benutzer auch auf alle Gesten reagieren kann, die der Span-Sammlung GestureRecognizers hinzugefügt werden. Beispielsweise wurde der zweiten Span in den obigen Codebeispielen eine TapGestureRecognizer hinzugefügt. Wenn dies Span darauf tippt, wird die TapGestureRecognizer Antwort daher durch Ausführen der ICommand von der Command Eigenschaft definierten Antwort ausgeführt. Weitere Informationen zu Gestenerkennungen finden Sie unter Xamarin.Forms "Gesten".

Die folgenden Screenshots zeigen das Ergebnis der Einstellung der FormattedString Eigenschaft auf drei Span Instanzen:

Label FormattedText Example

Line height

Die vertikale Höhe eines und Label eines Span kann angepasst werden, indem die Label.LineHeight Eigenschaft oder Span.LineHeight ein double Wert festgelegt wird. Unter iOS und Android sind diese Werte Multiplizierer der ursprünglichen Zeilenhöhe, und auf dem Universelle Windows-Plattform (UWP) ist der Label.LineHeight Eigenschaftswert ein Multiplizierer des Schriftgrads der Bezeichnung.

Hinweis

  • Unter iOS ändern die und Span.LineHeight die Label.LineHeight Eigenschaften die Zeilenhöhe von Text, der auf eine einzelne Zeile passt, und Text, der in mehrere Zeilen umbrochen wird.
  • Unter Android ändern die und Span.LineHeight die Label.LineHeight Eigenschaften nur die Zeilenhöhe von Text, der in mehrere Zeilen umgebrochen wird.
  • Bei UWP ändert die Label.LineHeight Eigenschaft die Zeilenhöhe von Text, der in mehrere Zeilen umbrochen wird, und die Span.LineHeight Eigenschaft hat keine Auswirkung.

Das folgende XAML-Beispiel veranschaulicht das Festlegen der LineHeight Eigenschaft für ein Label:

<Label Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facilisis nulla eu felis fringilla vulputate. Nullam porta eleifend lacinia. Donec at iaculis tellus."
       LineBreakMode="WordWrap"
       LineHeight="1.8" />

Der entsprechende C#-Code lautet:

var label =
{
  Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In facilisis nulla eu felis fringilla vulputate. Nullam porta eleifend lacinia. Donec at iaculis tellus.", LineBreakMode = LineBreakMode.WordWrap,
  LineHeight = 1.8
};

Die folgenden Screenshots zeigen das Ergebnis der Einstellung der Label.LineHeight Eigenschaft auf 1,8:

Label LineHeight Example

Das folgende XAML-Beispiel veranschaulicht das Festlegen der LineHeight Eigenschaft für ein Span:

<Label LineBreakMode="WordWrap">
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In a tincidunt sem. Phasellus mollis sit amet turpis in rutrum. Sed aliquam ac urna id scelerisque. "
                  LineHeight="1.8"/>
            <Span Text="Nullam feugiat sodales elit, et maximus nibh vulputate id."
                  LineHeight="1.8" />
        </FormattedString>
    </Label.FormattedText>
</Label>

Der entsprechende C#-Code lautet:

var formattedString = new FormattedString();
formattedString.Spans.Add(new Span
{
  Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In a tincidunt sem. Phasellus mollis sit amet turpis in rutrum. Sed aliquam ac urna id scelerisque. ",
  LineHeight = 1.8
});
formattedString.Spans.Add(new Span
{
  Text = "Nullam feugiat sodales elit, et maximus nibh vulputate id.",
  LineHeight = 1.8
});
var label = new Label
{
  FormattedText = formattedString,
  LineBreakMode = LineBreakMode.WordWrap
};

Die folgenden Screenshots zeigen das Ergebnis der Einstellung der Span.LineHeight Eigenschaft auf 1,8:

Span LineHeight Example

Auffüllung

Der Abstand stellt den Abstand zwischen einem Element und seinen untergeordneten Elementen dar und wird verwendet, um das Element von seinem eigenen Inhalt zu trennen. Der Abstand kann auf Label Instanzen angewendet werden, indem die Label.Padding Eigenschaft auf einen Thickness Wert festgelegt wird:

<Label Padding="10">
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Lorem ipsum" />
            <Span Text="dolor sit amet." />
        </FormattedString>
    </Label.FormattedText>
</Label>

Der entsprechende C#-Code lautet:

FormattedString formattedString = new FormattedString();
formattedString.Spans.Add(new Span
{
  Text = "Lorem ipsum"
});
formattedString.Spans.Add(new Span
{
  Text = "dolor sit amet."
});
Label label = new Label
{
    FormattedText = formattedString,
    Padding = new Thickness(20)
};

Wichtig

Bei iOS wird beim Erstellen einer Label Eigenschaft, die die Padding Eigenschaft festlegt, der Abstand angewendet, und der Abstandswert kann später aktualisiert werden. Wenn jedoch ein Label Objekt erstellt wird, das die Padding Eigenschaft nicht festgelegt hat, hat der Versuch, sie später festzulegen, keine Auswirkung.

Unter Android und dem Universelle Windows-Plattform kann der Padding Eigenschaftswert beim Erstellen oder später angegeben Label werden.

Weitere Informationen zum Abstand finden Sie unter "Seitenränder und Abstand".

Der von Label und Span Instanzen angezeigte Text kann mit dem folgenden Ansatz in Links umgewandelt werden:

  1. Legen Sie die TextColor Eigenschaften und TextDecoration Eigenschaften der Label oder .Span
  2. Fügen Sie der TapGestureRecognizerGestureRecognizers Auflistung des Label Objekts oder Span, dessen Command Eigenschaft eine Bindung an ein ICommand, und dessen CommandParameter Eigenschaft die zu öffnende URL enthält, hinzu.
  3. Definieren Sie das ICommand , das von der TapGestureRecognizer.
  4. Schreiben Sie den Code, der von der ICommand.

Das folgende Codebeispiel aus dem Beispiel "Hyperlink-Demos " zeigt einen Label Inhalt, dessen Inhalt aus mehreren Span Instanzen festgelegt ist:

<Label>
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Alternatively, click " />
            <Span Text="here"
                  TextColor="Blue"
                  TextDecorations="Underline">
                <Span.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding TapCommand}"
                                          CommandParameter="https://learn.microsoft.com/xamarin/" />
                </Span.GestureRecognizers>
            </Span>
            <Span Text=" to view Xamarin documentation." />
        </FormattedString>
    </Label.FormattedText>
</Label>

In diesem Beispiel bestehen die ersten und dritten Span Instanzen aus Text, während die zweite Span einen tippbaren Link darstellt. Es hat seine Textfarbe auf Blau festgelegt und hat eine Unterstreichungstext-Dekoration. Dadurch wird die Darstellung eines Links erstellt, wie in den folgenden Screenshots gezeigt:

Hyperlinks

Wenn der Link angetippt wird, antwortet er TapGestureRecognizer , indem er die ICommand durch seine Command Eigenschaft definierte Ausführung ausführt. Darüber hinaus wird die durch die CommandParameter Eigenschaft angegebene URL als Parameter übergeben ICommand .

Der CodeBehind für die XAML-Seite enthält die TapCommand Implementierung:

public partial class MainPage : ContentPage
{
    // Launcher.OpenAsync is provided by Xamarin.Essentials.
    public ICommand TapCommand => new Command<string>(async (url) => await Launcher.OpenAsync(url));

    public MainPage()
    {
        InitializeComponent();
        BindingContext = this;
    }
}

Die TapCommand Methode wird ausgeführt Launcher.OpenAsync , wobei der TapGestureRecognizer.CommandParameter Eigenschaftswert als Parameter übergeben wird. Die Launcher.OpenAsync Methode wird von Xamarin.Essentials, und öffnet die URL in einem Webbrowser. Der Gesamteffekt besteht daher darin, dass beim Tippen auf den Link auf der Seite ein Webbrowser angezeigt wird und zu der dem Link zugeordneten URL navigiert wird.

Der vorherige Ansatz zum Erstellen eines Links erfordert jedes Mal, wenn Sie einen Link in Ihrer Anwendung benötigen, wiederholten Code zu schreiben. Sowohl die Klassen als auch die LabelSpan Klassen können jedoch unterklassigt werden, um sie zu erstellen und HyperlinkSpan klassen zu erstellenHyperlinkLabel, wobei dort der Code für die Gestikerkennung und textformatierung hinzugefügt wurde.

Das folgende Codebeispiel aus dem Beispiel "Hyperlink Demos " zeigt eine HyperlinkSpan Klasse:

public class HyperlinkSpan : Span
{
    public static readonly BindableProperty UrlProperty =
        BindableProperty.Create(nameof(Url), typeof(string), typeof(HyperlinkSpan), null);

    public string Url
    {
        get { return (string)GetValue(UrlProperty); }
        set { SetValue(UrlProperty, value); }
    }

    public HyperlinkSpan()
    {
        TextDecorations = TextDecorations.Underline;
        TextColor = Color.Blue;
        GestureRecognizers.Add(new TapGestureRecognizer
        {
            // Launcher.OpenAsync is provided by Xamarin.Essentials.
            Command = new Command(async () => await Launcher.OpenAsync(Url))
        });
    }
}

Die HyperlinkSpan Klasse definiert eine Url Eigenschaft und zugeordnet BindableProperty, und der Konstruktor legt die Hyperlinkdarstellung fest, und die TapGestureRecognizer antwortet, wenn der Link angetippt wird. Wenn sie HyperlinkSpan angetippt wird, antwortet die TapGestureRecognizer Methode, indem die Methode ausgeführt wird, um die Launcher.OpenAsync durch die Url Eigenschaft angegebene URL in einem Webbrowser zu öffnen.

Die HyperlinkSpan Klasse kann genutzt werden, indem sie eine Instanz der Klasse zum XAML-Code hinzufügt:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:HyperlinkDemo"
             x:Class="HyperlinkDemo.MainPage">
    <StackLayout>
        ...
        <Label>
            <Label.FormattedText>
                <FormattedString>
                    <Span Text="Alternatively, click " />
                    <local:HyperlinkSpan Text="here"
                                         Url="https://learn.microsoft.com/appcenter/" />
                    <Span Text=" to view AppCenter documentation." />
                </FormattedString>
            </Label.FormattedText>
        </Label>
    </StackLayout>
</ContentPage>

Formatieren von Bezeichnungen

In den vorherigen Abschnitten wurden Einstellung Label und Span Eigenschaften pro Instanz behandelt. Gruppen von Eigenschaften können jedoch in einer Formatvorlage gruppiert werden, die konsistent auf eine oder mehrere Ansichten angewendet wird. Dadurch kann die Lesbarkeit von Code erhöht und Entwurfsänderungen einfacher implementiert werden. Weitere Informationen finden Sie unter "Formatvorlagen".