private static void Assert(string input, string expected) { var runs = LinkDetectionHelper.DetectRuns(input); string actual = ""; foreach (var run in runs) { if (run is PortableHyperlinkRun hl) { actual += $"[{run.Text}]({hl.Uri.OriginalString})"; } else { actual += run.Text; } } Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(expected, actual, "Original: " + input); }
public static IEnumerable <Inline> Convert(string text, Brush hyperlinkColor = null) { var portableRuns = LinkDetectionHelper.DetectRuns(text); foreach (var run in portableRuns) { if (run is PortableHyperlinkRun hl) { var answer = new Hyperlink() { NavigateUri = hl.Uri, Inlines = { new Run() { Text = hl.Text } } }; if (hyperlinkColor != null) { answer.Foreground = hyperlinkColor; } yield return(answer); } else { yield return(new Run() { Text = run.Text }); } } }