2017-09-06 16 views
0

私はhttps://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/#Using_a_Custom_Fontの手順に従った。XamarinフォームカスタムフォントがUWPで動作しない(Androidで動作する)

UWPでは、フォントファイルをAssets/Fonts/DSEG7Modern-Regular.ttf(Build Action:Content。Copy never)に含めました。これは、Androidデバイス上で正しく動作

コード

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

: Androidのは、それは資産/ DSEG7Modern-Regular.ttf(AndroidAssetコピーでした。アクションを構築しない)です。私のローカルシステムにフォントをインストールすると、正しく動作します。私のフォントがインストールされていない(私のユーザはそうしない)場合、それは動作しません。

私もコードの背後でこれを試しましたが、どちらもうまくいきませんでした。

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

答えて

2

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> 

以下のような "資産" の前に "/" を追加します:

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

enter image description here

+0

私はこれを何の効果もなく試しました。しかし、提案をありがとう。 – Bryan

+0

何がうまくいかない?あなたはコード内でそれをしようとしましたか、あなたはそのコード行を確認しますか? –

+0

フォントを指定したフォントに変更しません。デフォルトのフォントのままです。私はFontFamilyの値の変化を見るが、DSEG7 Modernに設定していない。私のマシンにDSEG7 Modernフォントをインストールすると、正しく表示されます。 – Bryan

関連する問題