private async Task UpdateContentAsync() { if (_container != null && !string.IsNullOrEmpty(Source)) { _container.RowDefinitions.Clear(); _container.ColumnDefinitions.Clear(); _container.Children.Clear(); var container = new GridDocumentContainer(_container); try { var doc = await HtmlDocument.LoadAsync(Source); HtmlFragment body = doc?.Body; if (body == null) { body = doc; } WriteFragments(body, container); } catch (Exception ex) { ShowError(ex, container); } } }
public DocumentContainer Create(DependencyObject ctrl) { DocumentContainer container = null; if (ctrl is Grid) { container = new GridDocumentContainer(ctrl as Grid); } else if (ctrl is RowDefinition || ctrl is ColumnDefinition) { container = this; } else if (ctrl is Paragraph) { container = new ParagraphDocumentContainer(ctrl as Paragraph); } else if (ctrl is Span) { container = new SpanDocumentContainer(ctrl as Span); } else if (ctrl is GridRow) { container = new GridRowContainer(ctrl as GridRow); } else if (ctrl is GridColumn) { container = new GridColumnContainer(ctrl as GridColumn); } if (container != null) { container.Parent = this; } return container; }
private static void ShowError(Exception ex, GridDocumentContainer gridContainer) { var p = new Paragraph(); p.FontFamily = new FontFamily("Courier New"); p.Inlines.Add(new Run { Text = $"Error rendering document: {ex.Message}" }); gridContainer.Append(p); Debug.WriteLine($"HtmlBlock: Error rendering document. Ex: {ex.ToString()}"); }
private async Task UpdateContentAsync() { if (_container != null && !string.IsNullOrEmpty(Source)) { _container.RowDefinitions.Clear(); _container.ColumnDefinitions.Clear(); _container.Children.Clear(); var container = new GridDocumentContainer(_container); try { var doc = await HtmlDocument.LoadAsync(Source); HtmlFragment body = doc?.Body; if (body == null) { body = doc; } WriteFragments(body, container); } catch (Exception ex) { ShowError(ex, container); } } }
private static void ShowError(Exception ex, GridDocumentContainer gridContainer) { var p = new Paragraph(); p.FontFamily = new FontFamily("Courier New"); p.Inlines.Add(new Run { Text = $"Error rendering document: {ex.Message}" }); gridContainer.Append(p); Debug.WriteLine($"HtmlBlock: Error rendering document. Ex: {ex.ToString()}"); }