如何在 Xamarin 表单的skiasharp 中使用自定义字体。
我试过了
paint.Typeface = SKTypeface.FromFamilyName("CoText_Bd");
和
paint.Typeface = SKTypeface.FromFile("CoText_Bd");
但两者都没有奏效。
我是否需要使用依赖服务访问字体的路径?
最佳答案
如果您想要真正的多平台解决方案,请将所有 SkiaSharp/PaintCode 绘图代码放入 .NET 标准库中,包括字体作为嵌入资源(不要忘记将构建操作设置为嵌入资源!)。然后你可以使用这个方法获取 SKTypeface 对象(Library ClassLibrary1,Folder Font):
public static SKTypeface GetTypeface(string fullFontName)
{
SKTypeface result;
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("ClassLibrary1.Font." + fullFontName);
if (stream == null)
return null;
result = SKTypeface.FromStream(stream);
return result;
}
记住在不再需要 SKObject 时处理它们。为了优化性能,最好在 Dictionary 中缓存 SKTypeface 对象以优化速度。
当您将所有绘图代码放入 .NET 标准库中时,您可以在 Windows 桌面 WPF 项目中轻松测试/开发,享受快速编译和构建,当您准备好时,然后在移动应用程序中使用它。
关于xamarin - 在skiasharp中加载字体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50494804/