Xamarin 如何更改导航页面中标题的字体大小和重量?

Xamarin 如何更改导航页面中标题的字体大小和重量?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我可以像这样更改字体颜色: var homePage=新导航页面(新主页()) { Title=“主页”, Icon=“ionicons\u 2\u 0\u 1\u home\u outline\u 25.png”, BarTextColor=颜色。灰色, }; 但是有没有办法更改标题的字体大小和重量?我只想将其更改为iOS和Android平台。希望有人知道自定义渲染器代码可以帮助我做到这一点 请注意,此问题类似于我关于如何更改字体的问题,此处已回答: 这是一个适用于Android的自定义渲

我可以像这样更改
字体颜色

var homePage=新导航页面(新主页())
{ 
Title=“主页”,
Icon=“ionicons\u 2\u 0\u 1\u home\u outline\u 25.png”,
BarTextColor=颜色。灰色,
};
但是有没有办法更改标题的
字体大小
重量
?我只想将其更改为iOS和Android平台。希望有人知道
自定义渲染器
代码可以帮助我做到这一点

请注意,此问题类似于我关于如何更改字体的问题,此处已回答:


这是一个适用于Android的自定义渲染器,您可以在其中更改
字体大小
,以及
字体重量
。我已经用TODO标记了您必须更改的值

使用Android.Content;
使用Android.Graphics;
使用App5.Droid;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.Android.AppCompat;
[程序集:ExportRenderer(typeof(NavigationPage)、typeof(CustomNavigationPageRenderer))]
名称空间App5.Droid
{
公共类CustomNavigationPageRenderer:NavigationPageRenderer
{
私有Android.Support.V7.Widget.Toolbar\u工具栏;
公共CustomNavigationPageRenderer(上下文):基础(上下文)
{
}
添加了公共覆盖void OnViewAdded(Android.Views.View子项)
{
base.OnViewAdded(子级);
if(child.GetType()==typeof(Android.Support.V7.Widget.Toolbar))
{
_toolbar=(Android.Support.V7.Widget.toolbar)子级;
_toolbar.ChildViewAdded+=toolbar\u ChildViewAdded;
}
}
受保护的覆盖无效处置(布尔处置)
{
基地。处置(处置);
如果(处置)
{
_toolbar.ChildViewAdded-=toolbar\u ChildViewAdded;
}
}
专用无效工具栏\u添加了ChildViews(对象发送者,ChildViewAddedEventArgs e)
{
var view=e.Child.GetType();
System.Diagnostics.Debug.WriteLine(视图);
if(e.Child.GetType()==typeof(Android.Support.V7.Widget.AppCompatTextView))
{
var textView=(Android.Support.V7.Widget.AppCompatTextView)e.Child;
//TODO:在此处更改值
textView.TextSize=25;
textView.SetTypeface(null,TypefaceStyle.Bold);
_toolbar.ChildViewAdded-=toolbar\u ChildViewAdded;
}
}
}
}
下面是iOS自定义渲染器的实现

使用App5.iOS;
使用UIKit;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.iOS;
[程序集:ExportRenderer(typeof(NavigationPage)、typeof(CustomNavigationPageRenderer))]
名称空间App5.iOS
{
公共类CustomNavigationPageRenderer:NavigationRenderer
{
受保护的覆盖无效OnElementChanged(VisualElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(例如NewElement!=null)
{
var att=新的UITextAttributes();
//TODO:在此处创建FontSize和FontWeight
var fontSize=Font.SystemFontOfSize(30.0);
var boldFontSize=Font.SystemFontOfSize(35.0,FontAttributes.Bold);
//TODO:在此处应用选定的FontSize和FontWeight组合
att.Font=boldFontSize.ToUIFont();
UINavigationBar.Appearance.SetTitleTextAttributes(att);
}
}
}
}

这是一个适用于Android的自定义渲染器,您可以在其中更改
字体大小和
字体重量。我已经用TODO标记了您必须更改的值

使用Android.Content;
使用Android.Graphics;
使用App5.Droid;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.Android.AppCompat;
[程序集:ExportRenderer(typeof(NavigationPage)、typeof(CustomNavigationPageRenderer))]
名称空间App5.Droid
{
公共类CustomNavigationPageRenderer:NavigationPageRenderer
{
私有Android.Support.V7.Widget.Toolbar\u工具栏;
公共CustomNavigationPageRenderer(上下文):基础(上下文)
{
}
添加了公共覆盖void OnViewAdded(Android.Views.View子项)
{
base.OnViewAdded(子级);
if(child.GetType()==typeof(Android.Support.V7.Widget.Toolbar))
{
_toolbar=(Android.Support.V7.Widget.toolbar)子级;
_toolbar.ChildViewAdded+=toolbar\u ChildViewAdded;
}
}
受保护的覆盖无效处置(布尔处置)
{
基地。处置(处置);
如果(处置)
{
_toolbar.ChildViewAdded-=toolbar\u ChildViewAdded;
}
}
专用无效工具栏\u添加了ChildViews(对象发送者,ChildViewAddedEventArgs e)
{
var view=e.Child.GetType();
System.Diagnostics.Debug.WriteLine(视图);
if(e.Child.GetType()==typeof(Android.Support.V7.Widget.AppCompatTextView))
{
var textView=(Android.Support.V7.Widget.AppCompatTextView)e.Child;
//TODO:在此处更改值
textView.TextSize=25;
textView.SetTypeface(null,TypefaceStyle.Bold);
_toolbar.ChildViewAdded-=toolbar\u ChildViewAdded;
}
}
}
}
下面是iOS自定义渲染器的实现

使用App5.iOS;
使用UIKit;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.iOS;
[程序集:ExportRenderer(typeof(NavigationPage)、typeof(CustomNavigationPageRenderer))]
名称空间App5.iOS
{
公共类CustomNavigationPageRenderer:NavigationRenderer
{
受保护的覆盖无效OnElementChanged(VisualElementChangedEventArg