我正在 Xamarin 平台中创建库,我需要获取设备(android、iOS 和 windows)字体文件。
在 android 中,我可以从 /system/fonts
文件夹中获取字体文件。
安卓:
string[] fontfiles = System.IO.Directory.GetFiles("/system/fonts");
谁能分享您从 Windows 设备获取字体文件的想法?
提前致谢。
萨西。
最佳答案
How to get font file from windows phone
Windows Phone 无法获取系统字体文件,但可以获取系统字体。引用ptallett's blog , 请执行以下步骤:
为了在 UWP 中获取系统字体,我们必须使用
DirectX
,将这些NuGet
包安装到您的项目中:- SharpDX
- SharpDX.Direct2D1
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(); } }
使用 DependencyService在您的
PCL
中获取结果:string[] fontfiles = DependencyService.Get<IGetFont>().GetFontFiles();
关于android - 如何从Windows Phone中获取字体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897933/