如何从Windows Phone获取字体文件

问题描述 投票:2回答:1

我在Xamarin平台上创建库,我需要获取设备(android,iOS和windows)字体文件。在android我可以从/system/fonts文件夹中获取字体文件。

安卓:

string[] fontfiles = System.IO.Directory.GetFiles("/system/fonts");

任何人都可以分享你的想法从Windows设备获取字体文件吗?

提前致谢。

SAS i.

android windows-phone-8 fonts xamarin.forms
1个回答
0
投票

如何从Windows Phone获取字体文件

您无法在Windows Phone中获取系统字体文件,但可以获取系统字体。请参阅ptallett's blog,执行以下步骤:

  1. 为了获得UWP中的系统字体,我们必须使用DirectX,将这些NuGet pacakges安装到您的项目中: SharpDX SharpDX.Direct2D1
  2. GetFontFiles()将返回所有系统字体。 public class GetFont : FontDemo.IGetFont { public string[] GetFontFiles() { var fontList = new List<string>(); var factory = new SharpDX.DirectWrite.Factory(); var fontCollection = factory.GetSystemFontCollection(false); var familyCount = fontCollection.FontFamilyCount; for (int i = 0; i < familyCount; i++) { var fontFamily = fontCollection.GetFontFamily(i); var familyNames = fontFamily.FamilyNames; int index; if (!familyNames.FindLocaleName(CultureInfo.CurrentCulture.Name, out index)) { if (!familyNames.FindLocaleName("en-us", out index)) { index = 0; } } string name = familyNames.GetString(index); fontList.Add(name); } return fontList.ToArray(); } }
  3. 在你的DependencyService中使用PCL来获得结果: string[] fontfiles = DependencyService.Get<IGetFont>().GetFontFiles();
© www.soinside.com 2019 - 2024. All rights reserved.