private ScrollViewer InitializeScrollViewer() { var scrollViewer = new ScrollViewer(); var grid = new Grid() { Margin = new Thickness(12, 0, 12, 12) }; grid.HorizontalAlignment = ContentAlignment; if (ContentAlignment != HorizontalAlignment.Stretch) { grid.MaxWidth = 1000; } grid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(0, GridUnitType.Star) }); var stackPannel = new StackPanel(); int baseFontSize = 20; if (!string.IsNullOrEmpty(Title)) { innerTitleTextBlock = new TextBlock() { Text = Title, TextWrapping = TextWrapping.Wrap, Margin = new Thickness(0, 0, 0, 12), FontSize = baseFontSize + 6, FontWeight = FontWeights.Bold, Foreground = this.Foreground }; stackPannel.Children.Add(innerTitleTextBlock); } if (!string.IsNullOrEmpty(SubTitle)) { innerSubTitleTextBlock = new TextBlock() { Text = SubTitle, TextWrapping = TextWrapping.Wrap, Margin = new Thickness(0, 0, 0, 12), FontSize = baseFontSize + 2, Foreground = this.Foreground }; stackPannel.Children.Add(innerSubTitleTextBlock); } if (!string.IsNullOrEmpty(ImageUrl)) { string url = string.Empty; if (ImageUrl.ToLower().StartsWith("http")) { url = ImageUrl; } else { url = @"ms-appx://" + ImageUrl; } var viewBox = new Viewbox() { StretchDirection = StretchDirection.DownOnly, HorizontalAlignment = ContentAlignment }; var imageImage = new Image() { Source = new BitmapImage() { UriSource = new Uri(url) } }; viewBox.Child = imageImage; stackPannel.Children.Add(viewBox); } innerRichTextBlock = new RichTextBlock() { TextWrapping = TextWrapping.Wrap, FontSize = baseFontSize, Foreground = this.Foreground }; var p = new Paragraph(); p.Inlines.Add(new Run() { Text = DetailContent }); innerRichTextBlock.Blocks.Add(p); Grid.SetRow(stackPannel, 0); Grid.SetRow(innerRichTextBlock, 1); grid.Children.Add(stackPannel); grid.Children.Add(innerRichTextBlock); scrollViewer.Content = grid; return(scrollViewer); }