Xamarin.Forms Etiketin

Örnek indir Örneği indirin

Metni görüntüle

LabelGörünüm, tek ve çok satırlı metin görüntülemek için kullanılır. Etiketlerde metin süslemeleri, renkli metinler ve özel yazı tipleri (aileleri, Boyutlar ve Seçenekler) kullanabilirsiniz.

Metin süslemeleri

LabelLabel.TextDecorations Özelliği bir veya daha fazla numaralandırma üyesine ayarlayarak alt çizgi ve üstü metin süslemeleri örneklere uygulanabilir TextDecorations :

  • None
  • Underline
  • Strikethrough

Aşağıdaki XAML örneği, özelliği ayarlamayı gösterir Label.TextDecorations :

<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" />

Eşdeğer C# kodu:

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 };

Aşağıdaki ekran görüntülerinde TextDecorations örneklere uygulanan numaralandırma üyeleri gösterilmektedir Label :

Metin süslemeleri olan Etiketler

Not

Metin süslemeleri da Span örneklere uygulanabilir. Sınıfı hakkında daha fazla bilgi için Span bkz. Span.

Metin dönüştürme

, Özelliği LabelText sabit listesinin bir değeri ayarlanarak özelliğinde depolanan metnin büyük küçük harflerini dönüştürebilir TextTransformTextTransform . Bu numaralandırma dört değere sahiptir:

  • None metnin dönüştürülmeyeceğini gösterir.
  • Default platformun varsayılan davranışının kullanılacağını gösterir. Bu, özelliğin varsayılan değeridir TextTransform .
  • Lowercase metnin küçük harfe dönüştürüleceğini gösterir.
  • Uppercase metnin büyük harfe dönüştürüleceğini gösterir.

Aşağıdaki örnek, metnin büyük harfe dönüştürülmesini göstermektedir:

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

Eşdeğer C# kodu:

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

Karakter aralığı

LabelÖzelliği bir değere ayarlayarak, örneklere karakter aralığı uygulanabilir Label.CharacterSpacingdouble :

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

Eşdeğer C# kodu:

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

Sonuç olarak, tarafından görüntülenen metindeki karakterlerin LabelCharacterSpacing cihazdan bağımsız birimler birbirinden farklı olur.

Yeni satırlar

XAML 'den yeni bir satıra metin zorlamak için iki ana teknik vardır Label :

  1. "#10;" olan Unicode satırı akış karakterini kullanın & .
  2. Özellik öğesi söz dizimini kullanarak metninizi belirtin.

Aşağıdaki kod her iki teknikte bir örnek göstermektedir:

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

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

C# dilinde metin, "\n" karakteri ile yeni bir satıra zorlanabilir:

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

Renkler

Etiketler, bağlanılabilir Xamarin_Forms _Label_TextColor "Data-LinkType =" Absolute-path ">özelliği aracılığıyla özel metin rengi kullanacak şekilde ayarlanabilir TextColor .

Renklerin her platformda kullanılabilir olmasını sağlamak için özel dikkatli olmanız gerekir. Her platformda metin ve arka plan renkleri için farklı varsayılanlar bulunduğundan, her biri üzerinde çalışan bir varsayılan değer seçmek için dikkatli olmanız gerekir.

Aşağıdaki XAML örneği, bir öğesinin metin rengini ayarlar 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>

Eşdeğer C# kodu:

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;
    }
}

Aşağıdaki ekran görüntüleri, özelliği ayarlamanın sonucunu gösterir TextColor :

Etiket TextColor örneği

Renkler hakkında daha fazla bilgi için bkz. renkler.

Yazı Tipleri

Yazı tiplerini bir üzerinde belirtme hakkında daha fazla bilgi için Label bkz. Label.

Kesme ve kaydırma

Etiketler, özelliği tarafından sunulan çeşitli yollarla bir satıra sığamayacak metni işlemek üzere ayarlanabilir LineBreakMode . LineBreakMode , aşağıdaki değerlere sahip bir numaralandırmadır:

  • Yayın kesilmesi – son gösterilen metnin kafasını keser.
  • Karakterkaydırma : metni bir karakter sınırında yeni bir satıra kaydırır.
  • MiddleTruncation – metnin başlangıcını ve sonunu, ortalanın yerine üç nokta koyarak görüntüler.
  • NoWrap : metni sarmaz, yalnızca bir satıra sığacak kadar çok metin görüntüler.
  • Uyarlankesilmesi – metnin başlangıcını gösterir ve sona kesiliyor.
  • WordWrap : metni sözcük sınırında kaydırır.

Belirli sayıda satırı görüntüleme

Özelliği bir değere ayarlanarak, bir tarafından gösterilecek satır sayısı Label belirtilebilir Label.MaxLinesint :

  • MaxLines-1 olduğunda, varsayılan değeri olan Label Xamarin_Forms değeri MaxLines "Data-LinkType =" absolute-path ">LineBreakMode özelliğini, yalnızca bir satır, büyük olasılıkla kesilmiş veya tüm metinlere sahip tüm satırları gösterecek şekilde _Label_LineBreakMode.
  • 0 olduğunda, MaxLinesLabel gösterilmez.
  • MaxLines1 olduğunda sonuç, Xamarin_Forms MaxLines _Label_LineBreakMode "Data-LinkType =" Absolute-path ">LineBreakMode özelliği NoWrap ,, veya olarak HeadTruncationMiddleTruncationTailTruncation ayarlanarak aynıdır. Bununla birlikte, LabelLabel "Data-LinkType =" Absolute-path ">özelliği, varsa, LineBreakMode üç nokta yerleştirilmesiyle ilgili olarak Xamarin_Forms _Label_LineBreakMode değerine göre değişir.
  • MaxLines1 ' den büyükse, Label belirtilen sayıda satıra kadar görüntüler Xamarin_Forms, bu da MaxLines "Data-LinkType =" absolute-path ">LineBreakMode özelliği uygunsa üç nokta yerleştirilmesiyle ilgili olarak _Label_LineBreakMode. Ancak, MaxLines Xamarin_Forms MaxLines _Label_LineBreakMode "Data-LinkType =" Absolute-path ">LineBreakMode özelliği olarak ayarlandıysa, özelliğinin 1 ' den büyük bir değere ayarlanması etkisizdir NoWrap .

Aşağıdaki XAML örneği, MaxLines üzerinde özelliği ayarlamayı gösterir 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" />

Eşdeğer C# kodu:

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
};

Aşağıdaki ekran görüntüleri, MaxLines metnin 2 ' den fazla satır kaplamasına yetecek kadar uzun olduğu durumlarda özelliği 2 ' ye ayarlamanın sonucunu gösterir:

Etiket MaxLines örneği

HTML görüntüleme

LabelSınıfında, TextTypeLabel Örneğin düz metın mi yoksa HTML metni mi görüntülemesi gerektiğini belirleyen bir özelliği vardır. Bu özellik, numaralandırmanın üyelerinden birine ayarlanmalıdır TextType :

  • Text öğesinin Label düz metni gösterir ve özelliğinin varsayılan değeridir Label.TextType .
  • Html ' ın Label HTML metnini görüntüleyeceği anlamına gelir.

Bu nedenle, Label örnekleri özelliğini olarak ayarlayarak Label.TextTypeHtml ve Label.Text özelliğini bir HTML DIZESINE ayarlayarak, örnekler HTML görüntüleyebilir:

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

Yukarıdaki örnekte, HTML 'deki çift tırnak karakterlerinin sembol kullanılarak kaçış olması gerekir \ .

XAML 'de, ve sembolleri ek kaçış nedeniyle HTML dizeleri okunamaz hale gelebilir <> :

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

Alternatif olarak, daha fazla okunabilirlik için HTML bir bölümde satır içine alınabilir CDATA :

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

Bu örnekte, Label.Text Özelliği bölümünde satır içine alınmış HTML dizesine ayarlanır CDATA . TextÖzelliği sınıfı için olduğundan, bu işe yarar ContentPropertyLabel .

Aşağıdaki ekran görüntülerinde Label HTML görüntüleme gösterilmektedir:

İOS ve Android 'de HTML 'yi görüntüleyen bir etiketin ekran görüntüleri

Önemli

HTML 'nin bir içinde görüntülenmesi, Label temel alınan platformun DESTEKLEDIĞI HTML etiketleriyle sınırlıdır.

Biçimli metin

Etiketler FormattedText , aynı görünümde birden çok yazı tipi ve renkle metin sunumuna izin veren bir Xamarin_Forms _Label_FormattedText "Data-LinkType =" absolute-path ">özelliğini kullanıma sunar.

FormattedTextÖzelliği FormattedString , bir veya daha fazla örneği kapsayan, Span Xamarin_Forms FormattedText _FormattedString_Spans "Data-LinkType =" Absolute-path ">özelliği aracılığıyla ayarlanan türüdür Spans . Aşağıdaki Span Özellikler görsel görünümü ayarlamak için kullanılabilir:

Xamarin_Forms _Span_BackgroundColor "Data-LinkType =" Absolute-path ">BackgroundColor , Xamarin_Forms BackgroundColor _Span_Text" Data-linktype = "mutlak yol" >Text ve Xamarin_Forms _Span_Text "Data-LinkType =" Absolute-path ">Text bağlanabilir özellikler varsayılan bağlama moduna sahiptir OneWay . Bu bağlama modu hakkında daha fazla bilgi için bağlama modu kılavuzundaki varsayılan bağlama moduna bakın.

Ayrıca, Xamarin_Forms _GestureElement_GestureRecognizers "Data-LinkType =" Absolute-path ">GestureRecognizers özelliği, üzerinde hareketlerine yanıt verecek hareket tanıyıcılarının bir koleksiyonunu tanımlamak için kullanılabilir Span .

Not

HTML 'yi bir içinde göstermek mümkün değildir Span .

Aşağıdaki XAML örneği, FormattedText üç örneklerden oluşan bir özelliği gösterir Span :

<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>

Eşdeğer C# kodu:

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;
    }
}

Önemli

Xamarin_Forms _Span_Text "Data-LinkType =" Absolute-path ">Text özelliği Span veri bağlama aracılığıyla ayarlanabilir. Daha fazla bilgi için bkz. Veri Bağlama.

Bir Span Ayrıca, Span "Data-LinkType =" Absolute-path ">koleksiyonuna _GestureElement_GestureRecognizers" Data-LinkType = "mutlak yol" koleksiyonuna Xamarin_Forms eklenen herhangi bir hareketlerine yanıt verebileceğini unutmayın GestureRecognizers . Örneğin, TapGestureRecognizer Yukarıdaki kod örneklerinde ikincisine bir eklenmiştir Span . Bu nedenle, bu Span dokunduğunda, TapGestureRecognizerICommandSpan "Data-LinkType =" Absolute-path ">özelliği tarafından tanımlanan Xamarin_Forms _TapGestureRecognizer_Command çalıştırılarak yanıt verilir Command . Hareket tanıyıcıları hakkında daha fazla bilgi için bkz Xamarin.Forms Gestures ..

Aşağıdaki ekran görüntüleri, FormattedString özelliği üç örneğe ayarlamanın sonucunu gösterir Span :

Etiket FormattedText örneği

Çizgi yüksekliği

A ve a 'nın dikey yüksekliği, LabelSpan Xamarin_Forms Label _Label_LineHeight "Data-LinkType =" absolute-path ">Label.LineHeight özelliği veya Xamarin_Forms Span _Span_LineHeight" Data-LinkType = "Absolute-path" >Span.LineHeight bir double değere ayarlanarak özelleştirilebilir. iOS ve Android 'de bu değerler orijinal çizgi yüksekliğinin çeşitçilerine sahiptir Evrensel Windows Platformu (UWP) Label.LineHeight özellik değeri, etiket yazı tipi boyutunun bir çarpanı olur.

Not

Aşağıdaki XAML örneği, Xamarin_Forms _Label_LineHeight "Data-LinkType =" Absolute-path ">LineHeight özelliğinin bir örneğini ayarlamayı gösterir 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" />

Eşdeğer C# kodu:

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
};

Aşağıdaki ekran görüntüleri, _Label_LineHeight "Data-LinkType =" Absolute-path ">Label.LineHeight özelliğinin 1,8 olarak ayarlanmasını Xamarin_Forms sonucunu gösterir:

Etiket LineHeight örneği

Aşağıdaki XAML örneği, Xamarin_Forms _Span_LineHeight "Data-LinkType =" Absolute-path ">LineHeight özelliğinin bir örneğini ayarlamayı gösterir 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>

Eşdeğer C# kodu:

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
};

Aşağıdaki ekran görüntüleri, _Span_LineHeight "Data-LinkType =" Absolute-path ">Span.LineHeight özelliğinin 1,8 olarak ayarlanmasını Xamarin_Forms sonucunu gösterir:

Span LineHeight örneği

İç Boşluk

Padding öğesi ve onun alt öğeleri arasındaki boşluğu temsil eder ve öğeyi kendi içeriğinden ayırmak için kullanılır. LabelÖzelliği bir değere ayarlanarak doldurma örneklere uygulanabilir Label.PaddingThickness :

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

Eşdeğer C# kodu:

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)
};

Önemli

İOS 'ta, Label özelliği ayarlayan bir oluşturulduğunda Padding , doldurma uygulanır ve doldurma değeri daha sonra güncelleştirilir. Ancak, Label özelliği ayarlanmamış bir oluşturulduğunda Padding , daha sonra ayarlamaya çalışmak hiçbir etkiye sahip olmaz.

Android ve Evrensel Windows Platformu, Padding özellik değeri Label oluşturulduğunda veya daha sonra belirtilebilir.

Doldurma hakkında daha fazla bilgi için bkz. kenar boşlukları ve doldurma.

Ve örnekleri tarafından görüntülenecek metin, LabelSpan aşağıdaki yaklaşımla birlikte köprülere açılabilir:

  1. TextColorTextDecoration Veya özelliklerini ayarlayın LabelSpan .
  2. TapGestureRecognizerTapGestureRecognizerGestureRecognizersLabelSpan Xamarin_Forms _TapGestureRecognizer_Command "data-LinkType =" Absolute-path ">Command özelliği bir öğesine bağlandığında ICommand ve Xamarin_Forms GestureRecognizers _TapGestureRecognizer_CommandParameter" Data-linktype = "Absolute-path" >CommandParameter özelliği açılacak URL 'yi içerdiği Xamarin_Forms _GestureElement_GestureRecognizers "Data-LinkType =" Absolute-path ">koleksiyonuna ekleyin.
  3. ICommandTarafından yürütülecek öğesini tanımlayın TapGestureRecognizer .
  4. Tarafından yürütülecek kodu yazın ICommand .

Köprü gösterileri örneğinden alınan aşağıdaki kod örneği, içeriği birden çok örnekten ayarlanmış olan bir gösterir Span :

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

Bu örnekte, birinci ve üçüncü Span örnekler metin oluşturur, ikincisi de Span bir bant halinde köprüyü temsil eder. Metin rengi mavi olarak ayarlanmış ve metin dekorasyonu alt çizgi içeriyor. Bu, aşağıdaki ekran görüntülerinde gösterildiği gibi bir köprünün görünümünü oluşturur:

Köprüler

Köprü dokunduğunda, TapGestureRecognizerICommandTapGestureRecognizer _TapGestureRecognizer_Command "Data-LinkType =" absolute-path ">özelliği tarafından tanımlanan Xamarin_Forms yürüterek yanıt verir Command . Ayrıca, Xamarin_Forms tarafından belirtilen URL _TapGestureRecognizer_CommandParameter "Data-LinkType =" Absolute-path ">CommandParameter özelliği ICommand parametresi olarak öğesine geçirilir.

XAML sayfası için arka plan kodu, TapCommand uygulamayı içerir:

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;
    }
}

TapCommandLauncher.OpenAsync Yöntemini yürütür, Xamarin_Forms TapCommand "Data-LinkType =" absolute-path ">TapGestureRecognizer.CommandParameter özellik değerini parametre olarak geçirerek _TapGestureRecognizer_CommandParameter. Launcher.OpenAsyncYöntemi tarafından sağlanır Xamarin.Essentials ve URL 'yi bir Web tarayıcısında açar. Bu nedenle, köprünün sayfada dokunduğunda, bir Web tarayıcısının göründüğünü ve Köprüyle ilişkili URL 'ye gidildiği genel etki olur.

Bir köprü oluşturmaya yönelik önceki yaklaşım, uygulamanızda her köprünün her seferinde yinelenen kod yazılmasını gerektirir. Ancak, ve sınıflarının her ikisi de, LabelSpanHyperlinkLabelHyperlinkSpan hareket tanıyıcı ve metin biçimlendirme kodu eklenmiş şekilde, ve sınıfları oluşturmak için alt sınıflı olabilir.

Köprü gösterileri örneğinden alınan aşağıdaki kod örneği, bir sınıfı gösterir:

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))
        });
    }
}

HyperlinkSpanSınıfı bir özelliği tanımlar Url ve ilişkili ve BindableProperty Oluşturucu köprü görünümünü belirler ve TapGestureRecognizer köprü dokunduğunda yanıt verir. Bir HyperlinkSpan dokunulduğunda, bir TapGestureRecognizerLauncher.OpenAsync Web tarayıcısında özelliği tarafından belirtilen URL 'yi açmak için yöntemini yürüterek yanıt verir Url .

HyperlinkSpanSınıfı, XAML 'e sınıfın bir örneği eklenerek tüketilebilir:

<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://docs.microsoft.com/appcenter/" />
                    <Span Text=" to view AppCenter documentation." />
                </FormattedString>
            </Label.FormattedText>
        </Label>
    </StackLayout>
</ContentPage>

Stil oluşturma etiketleri

Önceki bölümlerde, Label örnek başına ayar ve Özellikler ele alınmıştır Span . Ancak, özellik kümeleri bir veya daha fazla görünüme tutarlı olarak uygulanan tek bir stil halinde gruplandırılabilir. Bu, kodun okunabilirliğini artırabilir ve tasarım değişikliklerinin uygulanması kolaylaşır. Daha fazla bilgi için bkz. Stiller.