private void DetailsUpdater_GlyphUpdated(object sender, GlyphUpdatedEventArgs e) { Dispatcher.Invoke(delegate { GlyphsInfo.Clear(); GlyphText = e.Text; //GlyphArea.Text = e.Text; if (e.DefaultFaces.Length == 1) { GlyphsInfo.AppendText(string.Format("Fallback Font: {0}\r\n", e.DefaultFaces[0].Face ?? "(none)")); } else { GlyphsInfo.AppendText("Fallback Font:\r\n"); foreach (var p in e.DefaultFaces) { var cultures = p.Cultures == null ? "all other" : string.Join(", ", p.Cultures.Select(c => c.IetfLanguageTag)); GlyphsInfo.AppendText(string.Format(" {0} ({1})\r\n", p.Face ?? "(none)", cultures)); } } GlyphsInfo.AppendText(string.Format("Available in: {0}", e.CompatibleFaces.Length > 0 ? string.Join(", ", e.CompatibleFaces) : "(none)")); FontList.SelectedIndex = -1; FontList.ItemsSource = e.CompatibleFaces; if (e.DefaultFaces != null) { FontList.SelectedItem = e.DefaultFaces.First(p => p.Cultures == null || p.Cultures.Contains(System.Globalization.CultureInfo.CurrentCulture)).Face; } }); }
private void Summaries_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SuppressUpdateGlyphs) { return; } var info = Summaries.SelectedItem as Unicode.Summary; if (info == null || !info.Code.HasValue) { CurrentGlyph = null; Identity.Clear(); GlyphsInfo.Clear(); GlyphArea.Text = GlyphText = ""; FontList.SelectedIndex = -1; DetailedInfo.Clear(); } else { CurrentGlyph = info.Code; Identity.Text = string.Format("{0:X04} {1}", (int)info.Code, info.Name); DdetailsUpdater.Update(info); } }