public void UpdateFromFuzzy(Utility.Match m) { if (m == null) { SearchScore = 0; ResetRichTitle(); } else { SearchScore = m.Score; UpdateRichTitleFromFuzzy(m); } }
void UpdateRichTitleFromFuzzy(Utility.Match match) { var inlines = new ObservableCollection <Inline>(); int lastEnd = 0; foreach (var m in match.GetContinuousMatches()) { inlines.Add(new Run(Title.Substring(lastEnd, m.Start - lastEnd))); var colored = new Run(Title.Substring(m.Start, m.Length)); colored.Foreground = (SolidColorBrush)Properties.Settings.Default["Accent"]; inlines.Add(colored); lastEnd = m.Start + m.Length; } if (lastEnd != Title.Length) { inlines.Add(new Run(Title.Substring(lastEnd))); } RichTitle = inlines; }