2017-09-06 2 views
0

Ich folgte den Schritten unter https://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/#Using_a_Custom_Font.Xamarin Forms Benutzerdefinierte Schriftart funktioniert nicht auf UWP (funktioniert auf Android)

Auf UWP habe ich die Schriftart-Datei in Assets/Fonts/DSEG7Modern-Regular.ttf (Build Aktion: Inhalt. Kopieren nie). Android ist es bei Aktiva/DSEG7Modern-Regular.ttf (Build Aktion:. AndroidAsset Kopieren nie)

-Code

 <Label Text="Hello Forms with XAML"> 
      <Label.FontFamily> 
       <OnPlatform x:TypeArguments="x:String"> 
        <OnPlatform.iOS>DSEG7Modern-Regular</OnPlatform.iOS> 
        <OnPlatform.Android>DSEG7Modern-Regular.ttf#DSEG7 Modern</OnPlatform.Android> 
        <OnPlatform.WinPhone>Assets/DSEG7Modern-Regular.ttf#DSEG7 Modern</OnPlatform.WinPhone> 
       </OnPlatform> 
      </Label.FontFamily> 
     </Label> 

Das funktioniert ordnungsgemäß auf einem Android-Gerät. Es funktioniert auch richtig, wenn ich die Schriftart auf meinem lokalen System installiere. Wenn ich die Schriftart nicht installiert habe (was meine Benutzer nicht tun), wird es nicht funktionieren.

Ich habe das auch mit Code hinterher versucht und es hat auch nicht funktioniert.

private string GetDSEG7FontForCurrentDevice() 
    { 
     switch (Device.RuntimePlatform) 
     { 
      case Device.Windows: 
      case Device.WinPhone: 
       return "Assets/Fonts/DSEG7Modern-Regular.ttf#DSEG7 Modern"; 
      case Device.Android: 
       return "DSEG7Modern-Regular.ttf#DSEG7 Modern"; 
      case Device.iOS: 
       return "DSEG7Modern-Regular"; 
     } 

     return MainLabel.FontFamily; 
    } 

Antwort

2

Add "/" vor "Assets" wie unter

in XAML

<Label x:Name="LabelModernFont" Text="Hello Forms with XAML"> 
     <Label.FontFamily> 
      <OnPlatform x:TypeArguments="x:String" > 
       <On Platform ="Windows">/Assets/Fonts/DSEG7Modern-Regular.ttf#DSEG7 Modern</On> 
      </OnPlatform> 
     </Label.FontFamily> 
    </Label> 

in Code:

switch (Device.RuntimePlatform) 
      { 
       case "Windows": 
        LabelModernFont.FontFamily = "/Assets/Fonts/DSEG7Modern-Bold.ttf#DSEG7 Modern"; 
        break; 
      } 

enter image description here

+0

Ich habe dies ohne Wirkung versucht. Danke für den Vorschlag. – Bryan

+0

was genau funktioniert nicht? Haben Sie versucht, das im Code zu tun? Verifizieren Sie, dass Sie diese Codezeile getroffen haben? –

+0

Es ändert meine Schriftart nicht in die angegebene Schriftart. Es bleibt die Standardschriftart. Ich sehe die Wertänderung in FontFamily, aber es setzt es nicht auf DSEG7 Modern. Wenn ich die DSEG7 Modern Schriftart auf meinem Computer installiere, wird es richtig angezeigt. – Bryan

Verwandte Themen