我在Xamarin平台上创建库,我需要获取设备(android,iOS和windows)字体文件。在android我可以从/system/fonts
文件夹中获取字体文件。
安卓:
string[] fontfiles = System.IO.Directory.GetFiles("/system/fonts");
任何人都可以分享你的想法从Windows设备获取字体文件吗?
提前致谢。
SAS i.
如何从Windows Phone获取字体文件
您无法在Windows Phone中获取系统字体文件,但可以获取系统字体。请参阅ptallett's blog,执行以下步骤:
DirectX
,将这些NuGet
pacakges安装到您的项目中:
SharpDX
SharpDX.Direct2D1GetFontFiles()
将返回所有系统字体。
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();
}
}
PCL
来获得结果:
string[] fontfiles = DependencyService.Get<IGetFont>().GetFontFiles();