请给我建议。
答案 0 :(得分:1)
将ttf文件放在Assets文件夹中时,可以通过以下方法访问ttf文件:
AssetManager assets = this.Assets;
Typeface font = Typeface.CreateFromAsset(assets, "Lobster-Regular.ttf");
// and use like this
Button button = (Button)FindViewById(Resource.Id.btn);
button.SetTypeface(font, TypefaceStyle.Normal);
换句话说,您只需要删除ttf文件之前的fonts
,就可以这样使用:
Typeface.CreateFromAsset(this.Assets, "Sample_Icons.ttf");
而不是:
Typeface.CreateFromAsset(this.Context.Assets, "fonts/Sample_Icons.ttf");
有一个简单的演示,您可以检查它here。效果如下:
答案 1 :(得分:0)
我根据这篇文章使用了解决方案:
https://blog.mzikmund.com/2017/07/checking-for-design-mode-in-xamarin-forms/
public static class EmulatorHelper
{
// https://blog.mzikmund.com/2017/07/checking-for-design-mode-in-xamarin-forms/
public static bool IsDesigner { get; set; }
#if !RELEASE
= true;
#endif
}
然后在应用程序的某处开始,例如AndroidApp.cs
public class AndroidApp : App
{
public override void Initialize()
{
base.Initialize();
EmulatorHelper.IsDesigner = false;
}
}
最后替换
Typeface font = Typeface.CreateFromAsset(assets, "Lobster-Regular.ttf");
使用
Typeface font = !EmulatorHelper.IsDesigner
? Typeface.CreateFromAsset(assets, "Lobster-Regular.ttf")
: Typeface.Default;
此解决方案的缺点是您会在设计器中看到默认字体,但它比带有错误标签的橙色框要好得多:)