2016-11-19 103 views
0

您好,我想知道如何在Xamarin的導航欄中使用自定義字體。Xamarin.Forms中的自定義字體NavigationBar + ActionBar

在XAML可以做一套導航欄屬性是這樣的:

<Style TargetType="NavigationPage"> 
     <Setter Property="BarBackgroundColor" Value="Pink"/> 
     <Setter Property="XXX"> 
      <Setter.Value> 
      <OnPlatform x:TypeArguments="x:String" 
       iOS="Kenyan Coffee" Android="kenyan coffee rg.ttf#Kenyan Coffee Rg" 
       WinPhone=""/> 
      </Setter.Value> 

     </Setter> 
</Style> 

我的問題是,我不能找到文檔中任何關於「字體族」或「標籤」或類似的東西那。

我得到的印象是我可能不得不使用自定義渲染,但我無法弄清楚爲了設置導航欄的樣式,我將不得不替換哪些類。有人有任何想法嗎?

似乎有一個簡單的直接方式來做到這一點,但我不想在它的樣式,除非我可以在兩個平臺上做到這一點。跨平臺的Xamarin.Forms方式是理想的,但任何可行的方法都可以。

討論像this這樣的自定義字體,似乎完全忽略了android的actionBar。

回答

0

自定義字體一般可以在App.xaml中全局設置。顯然這些設置不會影響工具欄。

但是,對於Android的工具欄,您必須在Android的style.xml中添加樣式。

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> 
    <!--set your custom font properties--> 
    <item name="android:textSize">18sp</item> 
</style> 

然後只是引用它在Toolbar.xaml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/primary" 
    android:theme="@style/MainTheme" 
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:titleTextAppearance="@style/Toolbar.TitleText" /> 
+0

非常感謝。我從這篇文章中學到了很多東西。我不知道現在是否可以直接在xml中執行此操作,但似乎無法使用此方法通過xml設置自定義字體。 [Here](http://stackoverflow.com/questions/36472953/how-to-set-custom-font-in-xml-file-instead-of-java-file)是它在直接Java中做的一個例子通過擴展textView類。爲了在操作欄上執行相同的操作,我需要延長什麼類? – xerotolerant

+0

我不認爲我能得到它 - 您可以覆蓋整個應用程序的字體,但不能用於工具欄。我給你舉例說明如何嚴格執行工具欄。對你起作用嗎? – MadDeveloper

+0

它的工作原理是它改變了字體大小。然而,我修改它像這樣'肯尼亞咖啡rg.ttf#肯尼亞咖啡Rg'使用自定義字體文件,但沒有奏效。 – xerotolerant