2017-05-20 2 views

Antwort

2

Es gibt keinen richtigen Weg, um es zu tun - da es keine plattformübergreifende 'Standardschriftfamilie' gibt, und auch die Tatsache, dass es plattformspezifisch ist.

auf diese weiter zu erarbeiten, um diese Eigenschaft verweisen möchte als für Label im Quellcode definiert,

public static readonly BindableProperty FontFamilyProperty = FontElement.FontFamilyProperty; 

die wiederum auf die Abhängigkeitseigenschaft bezieht sich wie in FontElement definiert,

public static readonly BindableProperty FontFamilyProperty = 
     BindableProperty.Create("FontFamily", typeof(string), typeof(IFontElement), default(string), 
           propertyChanged: OnFontFamilyChanged); 

oder die statische Methode, die Sie für SystemFontOfSize verwiesen haben.

public static Font SystemFontOfSize(NamedSize size) 
{ 
    var result = new Font { NamedSize = size }; 
    return result; 
} 

Wie Sie sehen können, in beiden Fällen als pro-Quellcode, der Wert 'null' für FontFamily ist nicht unerwartet. (Im ersten Fall wird die Abhängigkeitseigenschaft mit Standardwert als default(string) definiert, die auf null übersetzt, und in zweitem Fall Wert für FontFamily wird nie)

Das Gleiche gilt für Font.Default. Beim weiteren Graben, kommen Sie über IsDefault, die wie folgt definiert ist:

public bool IsDefault 
{ 
    get { return FontFamily == null && FontSize == 0 && NamedSize == NamedSize.Default && FontAttributes == FontAttributes.None; } 
} 

Also, wenn FontFamilynull ist, dann ist es der Standard in Xamarin Formen Öko-System.


Wenn Label auf einer bestimmten Plattform gemacht bekommt, dann, wenn seine FontFamily Eigenschaft speziell von 'null' auf einen Wert geändert wird, die Schriftart-Eigenschaft auf der nativen Kontrolle wird auch nie geändert. Das native Steuerelement wird daher mit der Standardschriftfamilie für diese Plattform gerendert.

Um diese Standardschriftart zu erhalten, müssen Sie implement native-services, and use dependency-injection, um diesen Wert zu erhalten.

Weitere Informationen zu nativen Steuerelementen, die für Label verwendet werden, finden Sie unter link.