खोज…


टिप्पणियों

देखने के लिए संसाधन:

Syles में कस्टम फ़ॉन्ट्स एक्सेस करना

Xamarin.Forms आपके क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन को वैश्विक शैलियों के साथ स्टाइल करने के लिए शानदार तंत्र प्रदान करता है।

मोबाइल की दुनिया में आपका आवेदन सुंदर होना चाहिए और अन्य अनुप्रयोगों से बाहर खड़ा होना चाहिए। इस वर्ण में से एक कस्टम फ़ॉन्ट है जो अनुप्रयोग में उपयोग किया जाता है।

Xamarin में XAML स्टाइलिंग के पावर सपोर्ट के साथ। आपके कस्टम फोंट के साथ सभी लेबलों के लिए बस बेस स्टाइल बनाया गया है।

कस्टम फोंट को आप में शामिल करने के लिए आईओएस और एंड्रॉइड प्रोजेक्ट जेराल्ड द्वारा लिखे गए एक्समरीन.फॉर्म के साथ आईओएस और एंड्रॉइड पर कस्टम फोंट का उपयोग करने में मार्गदर्शिका का पालन करते हैं।

App.xaml फ़ाइल संसाधन अनुभाग में शैली की घोषणा करें। यह सभी शैलियों को विश्व स्तर पर दिखाई देता है।

ऊपर गेराल्ड पोस्ट से हमें स्टाइलआईड संपत्ति का उपयोग करने की आवश्यकता है, लेकिन यह बाध्यकारी संपत्ति नहीं है, इसलिए स्टाइल सेटर में इसका उपयोग करने के लिए हमें इसके लिए अटैच संपत्ति बनाने की आवश्यकता है:

public static class FontHelper
{
    public static readonly BindableProperty StyleIdProperty =
        BindableProperty.CreateAttached(
            propertyName: nameof(Label.StyleId),
            returnType: typeof(String),
            declaringType: typeof(FontHelper),
            defaultValue: default(String),
            propertyChanged: OnItemTappedChanged);

    public static String GetStyleId(BindableObject bindable) => (String)bindable.GetValue(StyleIdProperty);

    public static void SetStyleId(BindableObject bindable, String value) => bindable.SetValue(StyleIdProperty, value);


    public static void OnItemTappedChanged(BindableObject bindable, object oldValue, object newValue)
    {
        var control = bindable as Element;
        if (control != null)
        {
            control.StyleId = GetStyleId(control);
        }
    }
}

फिर App.xaml संसाधन में शैली जोड़ें:

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:h="clr-namespace:My.Helpers"
             x:Class="My.App">

  <Application.Resources>

    <ResourceDictionary>
        <Style x:Key="LabelStyle" TargetType="Label">
            <Setter Property="FontFamily" Value="Metric Bold" />
            <Setter Property="h:FontHelper.StyleId" Value="Metric-Bold" />
        </Style>
    </ResourceDictionary>

  </Application.Resources>

</Application>

ऊपर पोस्ट के अनुसार हमें लेबल के लिए कस्टम रेंडरर बनाने की आवश्यकता है जो कि लेबलरेंडर ऑन एंड्रॉइड प्लेटफ़ॉर्म से विरासत में मिला है।

internal class LabelExRenderer : LabelRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged(e);
        if (!String.IsNullOrEmpty(e.NewElement?.StyleId))
        {
            var font = Typeface.CreateFromAsset(Forms.Context.ApplicationContext.Assets, e.NewElement.StyleId + ".ttf");
            Control.Typeface = font;
        }
    }
}

IOS प्लेटफ़ॉर्म के लिए किसी कस्टम रेंडर की आवश्यकता नहीं है।

अब आप अपने पेज के मार्कअप में शैली प्राप्त कर सकते हैं:

विशिष्ट लेबल के लिए

<Label Text="Some text" Style={StaticResource LabelStyle} />

या स्टाइल के आधार पर पेज पर सभी लेबलों के लिए स्टाइल लागू करें

<!-- language: xaml -->

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="My.MainPage">

  <ContentPage.Resources>

    <ResourceDictionary>
        <Style TargetType="Label" BasedOn={StaticResource LabelStyle}>
        </Style>
    </ResourceDictionary>

  </ContentPage.Resources>

  <Label Text="Some text" />      

</ContentPage>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow