【发布时间】:2020-04-16 21:48:40
【问题描述】:
我想在我的 Xamarin Forms 项目中使用自定义外部字体 (Monotype Corsiva) 作为嵌入式资源。我正在使用 Xamarin.Forms 版本 4.5.0.617
我在我的项目中添加了“MonotypeCorsiva.ttf”字体文件,并在解决方案资源管理器中设置了构建操作:嵌入式资源。
我在 App.xaml.cs
中添加了[assembly: ExportFont("MonotypeCorsiva.ttf", Alias = "MyFont")]我在 XAML 页面的
Label中使用它:<Label Text="Hello" FontFamily="MonotypeCorsiva" FontSize="Medium" />
我做的一切是否正确,我是否遗漏了什么?
我收到错误:
在 UWP 构建中: 在 MyApplication.UWP\App.xaml.cs
在 Android 构建中
我在 MyApplication.Droid\MainActivity.cs
中遇到了类似的错误System.TypeLoadException: 'Could not resolve type with token 01000072 from typeref (expected class 'Xamarin.Forms.ExportFontAttribute' in assembly 'Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null')'
【问题讨论】:
-
我没有使用 Xamarin Forms 4.5 中包含的最新装饰器属性作为预览功能。它可能还不是很稳定,也不是对所有平台都可用。先试试安卓/iOS。我看到你也使用了别名,你不需要在 fontfamily 上使用它而不是 name 吗?我正在使用旧方法通过将字体添加到每个平台来包含字体,所以抱歉,我无法提供更多帮助。
-
@Nk54,我也试过 Android,但我遇到了类似的错误
System.TypeLoadException: 'Could not resolve type with token 01000072 from typeref (expected class 'Xamarin.Forms.ExportFontAttribute' in assembly 'Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null')' -
尝试在每个平台更新包?尝试不使用别名(顺便说一句,您没有回答:您是否尝试将其设置为 ?您是否使用 chanel 进行测试?我在某个人的某个地方变红了让它在Android上运行。我的想法是它不是正确的包(pre),或者你的别名,或者你的字体文件属性。我无法帮助更多的抱歉。当你让它工作时让我更新!
-
JIC,在 XF 存储库中注册的自定义字体存在 UWP 错误:github.com/xamarin/Xamarin.Forms/issues/10307
-
为什么不把 ttf 放到你的 android 资产文件夹中,并设置构建类型为 AndroidAsset。?
标签: c# xamarin xamarin.forms