【发布时间】:2017-02-27 23:32:20
【问题描述】:
我正在使用适用于 Android、iOS 和 UWP 的 Xamarin.Forms 开发一个多平台应用程序。其中一项要求是在所有页面的标题上应用公司自定义字体,这些页面是 NavigationPage 的实例。我已经让这个适用于 iOS,但我无法让它适用于 Android 或 UWP。 我所做的是为每个平台创建自定义渲染器。对于 iOS,这是使用以下代码:
using System.ComponentModel;
using UIKit;
using MyNameSpace.iOS.Renderers
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRendererAttribute(typeof(NavigationPage), typeof(MyNavigationPageRenderer))]
namespace MyNameSpace.iOS.Renderers
{
public class MyNavigationPageRenderer : NavigationRenderer
{
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
var page = this.Element as NavigationPage;
if (page == null) return;
this.NavigationBar.TitleTextAttributes = new UIStringAttributes
{
Font = UIFont.FromName("MyFont", 18),
ForegroundColor = page.BarTextColor.ToUIColor()
};
}
}
}
我知道如何在 Android 和 UWP 平台的 OnElementChanged 方法中获取正确的字体,但我该如何应用它们?我找不到要设置的属性。
【问题讨论】:
-
您是否尝试过将此类内容翻译为 Xamarin? stackoverflow.com/questions/8607707/…
-
感谢@timothy,你让我意识到我确实必须深入了解原生 Android。我找到了适用于 Android 的可行解决方案,并自己回答了部分问题。
标签: xamarin.forms