public static List <Block> GetContent(string txt) { txt = txt.Replace("<div", "<p").Replace("</div>", "</p>"); var list = new List <Block>(); var regEx = new Regex( @"(\<p.*?\>)(?<text>.*?)(\<\/p\>|$)", RegexOptions.IgnoreCase | RegexOptions.Singleline); foreach (Match match in regEx.Matches(txt)) { var item = match.Groups["text"].Value.Trim(); if (item.Contains("<img")) { var paragraph = new Paragraph(); var regImg = new Regex( @"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase); foreach (Match matchImg in regImg.Matches(item)) { var image = new Image(); image.Source = new BitmapImage(new Uri(matchImg.Groups["imgUrl"].Value.Trim())); image.Stretch = Stretch.None; image.HorizontalAlignment = HorizontalAlignment.Center; image.Tapped += async(sender, args) => { ImgView cd = new ImgView(); cd.Source = new BitmapImage(new Uri(matchImg.Groups["imgUrl"].Value)); cd.Tapped += (o, eventArgs) => { cd.Hide(); }; cd.RightTapped += async(o, eventArgs) => { await Launcher.LaunchUriAsync(new Uri(matchImg.Groups["imgUrl"].Value)); }; await cd.ShowAsync(); }; var container = new InlineUIContainer(); container.Child = image; paragraph.Inlines.Add(container); } list.Add(paragraph); } else if (item.Contains("<span")) { var paragraph = new Paragraph(); paragraph.Inlines.Add(new Run() { Text = NoHTML(item), Foreground = new SolidColorBrush(Color.FromArgb(255, 34, 34, 34)), FontSize = 16 }); paragraph.LineHeight = 26; list.Add(paragraph); } else { var paragraph = new Paragraph(); paragraph.Inlines.Add(new Run() { Text = NoHTML(item), Foreground = new SolidColorBrush(Color.FromArgb(255, 34, 34, 34)), FontSize = 16 }); paragraph.LineHeight = 26; list.Add(paragraph); } } return(list); }