public KeyWord(string n, string c, string t) { name = n; color = c; switch (t) { case "1": type = typeOfKeyword.normal; break; case "2": type = typeOfKeyword.nxtWordyellow; break; case "3": type = typeOfKeyword.nxtWordgreen; break; case "4": type = typeOfKeyword.allgreen; break; case "5": type = typeOfKeyword.green; break; } }
public FlowDocument createDocument(string text) { string zeile; var document = new FlowDocument(); Paragraph p; char firstind; var converter = new System.Windows.Media.BrushConverter(); string word = string.Empty; bool specialkeyword = false, IsKeyword; typeOfKeyword type = typeOfKeyword.normal; string color = "0"; text = text.Replace(Environment.NewLine, "-/-"); if (text.Contains("-/-")) { do { p = new Paragraph(); zeile = text.Substring(0, text.IndexOf("-/-")); while (zeile != "") { if (zeile.Length > 2 && zeile.Substring(0, 2) == "//") { p.Inlines.Add(new Run(zeile) { Foreground = Brushes.Green }); zeile = ""; } else { IsKeyword = false; firstind = getfirstindex(zeile); if (firstind != 'n') { word = zeile.Substring(0, zeile.IndexOf(firstind)); if (specialkeyword) { if (type == typeOfKeyword.allgreen) { p.Inlines.Add(new Run(zeile) { Foreground = (Brush)converter.ConvertFromString(color) }); specialkeyword = false; type = typeOfKeyword.normal; break; } else { p.Inlines.Add(new Run(word) { Foreground = (Brush)converter.ConvertFromString(color) }); } specialkeyword = false; type = typeOfKeyword.normal; } else { foreach (var keyword in keywords) { if (keyword.Name == word.ToLower()) { IsKeyword = true; if (keyword.Type == typeOfKeyword.green) { p.Inlines.Add(new Run(word) { Foreground = (Brush)converter.ConvertFromString(keyword.Color) }); continue; } else { p.Inlines.Add(new Run(word) { Foreground = (Brush)converter.ConvertFromString(keyword.Color) }); } if (keyword.Type != typeOfKeyword.normal) { specialkeyword = true; type = keyword.Type; if (type == typeOfKeyword.allgreen) { color = "#4ac9a7"; } else { color = "#b8c068"; } } } } if (!IsKeyword) { p.Inlines.Add(new Run(word)); } } zeile = zeile.Remove(0, word.Length + 1); p.Inlines.Add(new Run(firstind.ToString())); } else { if (specialkeyword) { if (type == typeOfKeyword.allgreen) { p.Inlines.Add(new Run(zeile) { Foreground = (Brush)converter.ConvertFromString(color) }); specialkeyword = false; type = typeOfKeyword.normal; break; } else { p.Inlines.Add(new Run(word) { Foreground = (Brush)converter.ConvertFromString(color) }); } specialkeyword = false; type = typeOfKeyword.normal; } else { p.Inlines.Add(new Run(zeile)); } break; } } } document.Blocks.Add(p); text = text.Remove(0, text.IndexOf("-/-") + 3); } while (text.IndexOf("-/-") != text.LastIndexOf("-/-")); } else { document.Blocks.Add(new Paragraph(new Run(text))); } return(document); }