如何在 Xamarin ActionBar 标题中设置自定义字体系列?

2023-12-20

如标题所示。我在这里找到了如何做到这一点的想法Xamarin.Forms NavigationBar + ActionBar 中的自定义字体 https://stackoverflow.com/questions/40695972/custom-fonts-in-xamarin-forms-navigationbar-actionbar告诉在中定义它style.xml文件,但我无法获取自定义字体系列。

所以我现在的风格是这样的:

 <style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<!--set your custom font properties-->
<item name="android:textSize">18sp</item>
<item name="android:fontFamily">HelveticaNeue Medium.ttf</item>
<item name="android:textColor">@android:color/white</item>

为此,您可以在 android 中创建自定义渲染器。渲染器只是使用 Android 项目中定义的资源来更改导航栏的字体。您可以在 android 中使用以下渲染器:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(AndroidNavigationRenderer))]
namespace Xamarin.Droid.DependencyServices
{
  public class AndroidNavigationRenderer : NavigationPageRenderer
  {
    private Android.Support.V7.Widget.Toolbar toolbar;

    public override void OnViewAdded(Android.Views.View child)
    {
        base.OnViewAdded(child);
        if (child.GetType() == typeof(Android.Support.V7.Widget.Toolbar))
        {
            toolbar = (Android.Support.V7.Widget.Toolbar)child;
            toolbar.ChildViewAdded += Toolbar_ChildViewAdded;
        }
    }

    private void Toolbar_ChildViewAdded(object sender, ChildViewAddedEventArgs e)
    {
        var view = e.Child.GetType();
        if (e.Child.GetType() == typeof(Android.Support.V7.Widget.AppCompatTextView))
        {
            var textView = (Android.Support.V7.Widget.AppCompatTextView)e.Child;
            textView.Typeface = Typeface.CreateFromAsset(this.Context.Assets, "fonts/QuicksandRegular.ttf");

            toolbar.ChildViewAdded -= Toolbar_ChildViewAdded;
        }
    }
  }
}

对于 UWP,您可以在 app.xaml 中定义自定义样式来覆盖标题栏的默认样式。您可以在 UWP 中使用以下代码:

 <Style x:Key="TitleTextBlockStyle" TargetType="TextBlock">
    <Setter Property="FontSize" Value="18"/>
    <Setter Property="FontStyle" Value="Normal"/>
    <Setter Property="FontWeight" Value="SemiBold"/>
    <Setter Property="FontFamily" Value="Assets/Fonts/QuicksandRegular.ttf#Quicksand"/>
    <Setter Property="Padding" Value="10"/>
 </Style>

只需将字体系列更改为您选择的字体系列即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xamarin ActionBar 标题中设置自定义字体系列? 的相关文章

随机推荐

  • 自首次启动以来的时间

    我正在开发一个 Android 应用程序 并遇到了确定系统首次启动时间的问题 我的意思是我需要测量多少从设备首次启动起已经过了时间 我知道有关侦听 ACTION BOOT COMPLETED 并将任何内容保存在 SharedPreferen
  • C# 与 C++ - 类型、继承和 vtable

    我无法理解导致 C 和 C 之间差异的原因 首先我们有一个例子 其中基类包含一个虚函数 class Base protected int super public virtual int f 0 class Derived public B
  • 我如何使用.NET 获悉我的客户端IP?

    我需要来自whatismyip com 的客户端IP 但我认为正则表达式模式不正确 你能帮我这个图案吗 您是否阅读了获取的 HTML 中的注释 请设置您的代码以进行抓取 你的IP来自 www whatismyip com automatio
  • Matplotlib 中 X 轴的换行符导致意外的窗口大小调整/跳跃/闪烁行为

    我正在 matplotlib 中的 x 轴上绘制日期和时间 因为我想绘制尽可能多的标签 所以我在 x 标签中使用换行符 如下所示 不幸的是 当我将鼠标悬停在图表上时 这会产生调整 matplotlib 窗口大小的副作用 因为它尝试在底部打印
  • Twitter Bootstrap 的 JQgrid 样式问题

    我使用 JQgrid 来显示信息并执行 CRUD 操作 我想要一个具有 Twitter Bootstrap 外观和感觉的页面 并且 JQGrid 显示一些数据 但是如果我导入 JQGrid 的 CSS 和 Bootstrap 的 CSS 则
  • 编译器未识别出歧义

    我不得不花一些时间来查找并修复我设法在以下代码中隔离的错误 include
  • 发送带有 Unicode 的 HTML 邮件

    我修改了 python 文档中的示例 以测试电子邮件模块中的 unicode usr bin env python coding utf 8 from future import absolute import division unico
  • MySQL“SET NAMES”靠近慢查询日志的顶部

    在最近启动的一个网站上 我注意到 在数百万个查询中 成本最高的请求实际上是 SET NAMES 其平均耗时超过 2 3 秒 而各种多连接并集的查询时间远远超过该网站上实际的繁重查询 查询时间远低于 2 秒 最后 这将它放置在慢查询日志的顶部
  • 如何收集类似于 panopticlick.eff.org 的信息 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 仅在 MSCHART 折线图的数据点上显示工具提示

    我在 C 4 0 中使用 mschart 生成折线图 并创建 DataPoint 来显示点上的工具提示 但问题是 工具提示出现在线条的每个点上 但是我只想在我的数据点上 您可能已经找到了问题的解决方案 因为这篇文章已经很旧了 但我想做同样的
  • 使用 MediaRecorder API 无法在录制的视频中进行搜索

    我正在尝试使用 MediaRecorder API 构建屏幕录制 作为暗示性媒体记录的方法 var chunks var recorder new MediaRecorder stream recorder streams stream r
  • 查找数组中最长的连续子序列

    我的任务是编写一个程序 找到给定数组中最长的递增连续子序列 并打印该子序列的长度及其本身 假设数组是 int arr 3 6 5 1 9 3 2 3 4 5 1 最长的连续递增子序列是2 3 4 5 长度为4 所以这个方法的输出是 4 2
  • 如何链接到循环内的嵌套路由路径?

    在我的应用程序中 我有故事和子故事 子故事嵌套在故事内部storiesindex html erb 我在所有故事中循环 在内部我在所有子故事中循环 这是代码
  • WinRM 无法处理该请求。错误0x80090311

    我有 2 个具有本地管理员帐户的系统 SR01 和 SR02 两个系统都在同一域中 本地管理员帐户相同但密码不同 这些机器是虚拟机 当我从 SR01 到 SR02 运行 Enter pssession 时 它会抛出以下错误 错误 Enter
  • Json.NET 可以反序列化“动态”属性吗?

    我的 C 服务正在从外部服务接收具有 模糊 格式的对象 如下所示 member
  • proguard 混淆后与现有的、不兼容的同名和类的 bean 定义冲突

    经过 Proguard 混淆后 我收到以下错误 从 ServletContext 资源解析 XML 文档时出现意外异常 WEB INF applicationContext xml 嵌套异常是 java lang IllegalStateE
  • 如何修复 MacOS High Sierra 上 Home-brew 的权限

    当我尝试将 python 安装到 homebrew 上时 它下载了它 然后最后弹出一条错误消息 阻止它完成 当我尝试再次执行此操作时 它要求我执行以下操作 brew link python 输入后出现相同的错误消息 permission d
  • 对 macOS 命令行二进制文件进行签名、公证、强化等?

    对命令行二进制文件 stdin stdout 等 无窗口或图标 进行强化 代码签名 公证 打包等最合适的方法是什么 以允许将二进制文件分发给 macOS Catalina 用户 因此他们可以以最少的痛苦 麻烦来运行该实用程序吗 假设 Gat
  • C++ 跟踪自程序启动以来已经过去了多少秒

    我正在编写一个将在 Solaris 计算机上使用的程序 我需要一种方法来跟踪自程序启动以来已经过去了多少秒 我这里说的很简单 例如我会有一个 int Seconds 0 但是我该如何在每一秒过去时更新秒变量呢 我看过的一些不同的时间函数似乎
  • 如何在 Xamarin ActionBar 标题中设置自定义字体系列?

    如标题所示 我在这里找到了如何做到这一点的想法Xamarin Forms NavigationBar ActionBar 中的自定义字体 https stackoverflow com questions 40695972 custom f