public override async Task LoadAsync() { await base.LoadAsync(); if (InstalledFonts == null) { var installedFonts = AllFonts; InstalledFonts = new FontGroup(); InstalledFonts.Description = "Installed Locally"; InstalledFonts.HasFonts = true; foreach (var f in installedFonts) { f.Type = "Installed"; InstalledFonts.Add(f); } } if (OnlineFonts == null) { OnlineFonts = new FontGroup(); OnlineFonts.Description = "Online"; OnlineFonts.HasFonts = true; foreach (var f in await GetOnlineFonts()) { f.Type = "Online"; OnlineFonts.Add(f); } // load online fonts foreach (var font in OnlineFonts) { var codes = font.CharacterCodes.Select(c => new FontChar() { Name = c.Key, Char = (char)c.Value, Family = font.Name, Size = 48 }); } } AllFonts = OnlineFonts.Union(InstalledFonts).ToList(); }