public void enableLink(SymLink link) { MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler( delegate(object sender, System.Windows.Input.MouseButtonEventArgs args) { try { NavigateTo(link.filename, link.line, link.column); } catch { } }); MouseEnter += new System.Windows.Input.MouseEventHandler( delegate(object sender, System.Windows.Input.MouseEventArgs args) { TextDecorations.Add(System.Windows.TextDecorations.Underline); }); MouseLeave += new System.Windows.Input.MouseEventHandler( delegate(object sender, System.Windows.Input.MouseEventArgs args) { foreach (var td in System.Windows.TextDecorations.Underline) { TextDecorations.Remove(td); } }); }
static SymLink[] stringToSymLinks(string links) { string[] strlinks = links.Split(';'); SymLink[] symlinks = new SymLink[strlinks.Length]; for (int i = 0; i < strlinks.Length; i++) { string[] tok = strlinks[i].Split(','); if (tok.Length >= 3 && !String.IsNullOrEmpty(tok[2])) { Int32.TryParse(tok[0], out symlinks[i].start); Int32.TryParse(tok[1], out symlinks[i].length); symlinks[i].filename = tok[2]; if (tok.Length >= 5) { Int32.TryParse(tok[3], out symlinks[i].line); Int32.TryParse(tok[4], out symlinks[i].column); } } } return(symlinks); }