【问题标题】:Custom Fonts in Xamarin.Forms NavigationBar + ActionBarXamarin.Forms NavigationBar + ActionBar 中的自定义字体
【发布时间】:2017-04-03 10:04:25
【问题描述】:

您好,我想知道如何在 Xamarin 的导航栏中使用自定义字体。

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

我的问题是我在文档中找不到有关“字体系列”或“标签”或类似内容的任何内容。

我的印象是我可能必须使用自定义渲染,但我无法弄清楚我必须替换哪个类才能设置导航栏的样式。有人有什么想法吗?

似乎有一种简单直接的方式可以在 iOS 上执行此操作,但我不想在此处设置样式,除非我可以在两个平台上执行此操作。跨平台的 Xamarin.Forms 方式是理想的,但任何可行的方法都可以。

this 之类的关于自定义字体的教程似乎完全忽略了 android actionBar。

【问题讨论】:

    标签: c# xaml xamarin xamarin.forms


    【解决方案1】:

    自定义字体一般可以在 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" />
    

    【讨论】:

    • 非常感谢。我从这篇文章中学到了很多东西。我不知道现在是否可以直接在 xml 中执行此操作,但似乎无法使用此方法通过 xml 设置自定义字体。 Here 是通过扩展 textView 类在纯 Java 中执行的示例。为了在操作栏上做同样的事情,我必须扩展什么类?
    • 我不认为我明白 - 您可以覆盖整个应用程序的字体,但不能覆盖工具栏。我给你举例说明了如何严格地为工具栏做这件事。它对你有用吗?
    • 从某种意义上说,它改变了字体大小。但是我像这样&lt;item name="android:fontFamily"&gt;kenyan coffee rg.ttf#Kenyan Coffee Rg&lt;/item&gt; 修改它以使用自定义字体文件,但这不起作用。
    • 你是对的@xero容错它可以改变大小,但是,对于自定义字体它没有。您知道如何使用这种共享方法来做到这一点吗?
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 2013-03-21
    • 2019-01-13
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多