gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:37:43 26 4
gpt4 key购买 nike

如题。我在这里找到了如何做到这一点的想法 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>

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

关于xaml - 如何在 Xamarin ActionBar 标题中设置自定义字体系列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48934928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com