Xamarin.Forms Etikett
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:
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 derTextTransform
-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:
- Verwenden Sie das Unicode-Zeilenvorschubzeichen, das " " lautet.
- 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 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:
Weitere Informationen zu Farben finden Sie unter "Farben".
Schriftarten
Weitere Informationen zum Angeben von Schriftarten in einem Label
Finden 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 derLabel
Wert derLineBreakMode
Eigenschaft berücksichtigt, um entweder nur eine Zeile, möglicherweise abgeschnitten oder alle Zeilen mit gesamtem Text anzuzeigen. - Wenn
MaxLines
0 ist, wird diesLabel
nicht angezeigt. - Wenn
MaxLines
1 ist, ist das Ergebnis identisch mit dem Festlegen derLineBreakMode
Eigenschaft aufNoWrap
,HeadTruncation
, , oderTailTruncation
MiddleTruncation
. DiesLabel
gilt jedoch für den Wert derLineBreakMode
Immobilie im Hinblick auf die Platzierung einer Auslassungspunkte, falls zutreffend. - Wenn
MaxLines
größer als 1 ist, wird dieLabel
angegebene Anzahl von Zeilen angezeigt, wobei der Wert derLineBreakMode
Eigenschaft im Hinblick auf die Platzierung einer Auslassungspunkte berücksichtigt wird, falls zutreffend. Das Festlegen derMaxLines
Eigenschaft auf einen Wert größer als 1 hat jedoch keine Auswirkung, wenn dieLineBreakMode
Eigenschaft aufNoWrap
".
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:
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 derLabel
Nur-Text angezeigt wird und der Standardwert derLabel.TextType
Eigenschaft ist.Html
gibt an, dass derLabel
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 <strong style="color:red">HTML</strong> 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:
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 Typdouble
: Abstand zwischen den Zeichen desSpan
-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 dieTextColor
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 BackgroundColor
Eigenschaften , Text
und 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:
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
dieLabel.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
dieLabel.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 dieSpan.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:
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:
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".
Links
Der von Label
und Span
Instanzen angezeigte Text kann mit dem folgenden Ansatz in Links umgewandelt werden:
- Legen Sie die
TextColor
Eigenschaften undTextDecoration
Eigenschaften derLabel
oder .Span
- Fügen Sie der
TapGestureRecognizer
GestureRecognizers
Auflistung desLabel
Objekts oderSpan
, dessenCommand
Eigenschaft eine Bindung an einICommand
, und dessenCommandParameter
Eigenschaft die zu öffnende URL enthält, hinzu. - Definieren Sie das
ICommand
, das von derTapGestureRecognizer
. - 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:
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.
Erstellen einer wiederverwendbaren Hyperlinkklasse
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 Label
Span
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".