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);
                }
            }
        }
Beispiel #2
0
        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()}");
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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()}");
        }