Пример #1
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var italic = new Italic();

            parent.Add(italic);
            context.RenderNode(element, new SpanContainer(italic));
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var bold = new Bold();

            parent.Add(bold);
            context.RenderNode(element, new SpanContainer(bold));
        }
Пример #3
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var paragraph = new Paragraph();

            parent.Add(paragraph);
            context.RenderNode(element, new OrderListContainer(paragraph));
        }
Пример #4
0
        public async void Render(News news)
        {
            if (NetworkService.IsNetworkAvailable() == false)
            {
                await new DialogService().ShowMessageBox("请检查网络连接。", "错误");
                return;
            }
            this.IsLoading = true;
            Exception exception = null;

            try
            {
                var newsDetail = await NewsService.DetailAsync(news.Id);

                this.Title = newsDetail.Title;
                var richTextBlock = new RichTextBlock()
                {
                    FontSize = 16,
                    Margin   = new Thickness(20, 0, 20, 10),
                    IsTextSelectionEnabled = false
                };
                var context = new RenderContextBase(newsDetail.Content);
                context.Render(richTextBlock);
                this.NewsDetail = richTextBlock;
            }
            catch (Exception ex)
            {
                exception = ex;
            }
            if (exception != null)
            {
                await new DialogService().ShowError(exception, "错误", "关闭", null);
            }
            this.IsLoading = false;
        }
Пример #5
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var a = (IHtmlAnchorElement)element;

            if (a.ChildElementCount == 0)
            {
                var anchor = new Hyperlink
                {
                    Foreground = new SolidColorBrush(Colors.LightBlue)
                };
                anchor.Click += async (sender, args) =>
                {
                    var dialog = new MessageDialog(a.Href, "使用浏览器打开");
                    dialog.Commands.Add(new UICommand("确定", async cmd =>
                    {
                        var success = await Launcher.LaunchUriAsync(new Uri(a.Href, UriKind.Absolute));
                        if (success)
                        {
                            anchor.Foreground = new SolidColorBrush(Colors.Purple);
                        }
                    }));
                    dialog.Commands.Add(new UICommand("取消"));
                    await dialog.ShowAsync();
                };

                parent.Add(anchor);

                context.RenderNode(element, new SpanContainer(anchor));
            }
            else
            {
                context.RenderNode(element,parent);
            }
        }
Пример #6
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var a = (IHtmlAnchorElement)element;

            if (a.ChildElementCount == 0)
            {
                var anchor = new Hyperlink
                {
                    Foreground = new SolidColorBrush(Colors.LightBlue)
                };
                anchor.Click += async(sender, args) =>
                {
                    var dialog = new MessageDialog(a.Href, "使用浏览器打开");
                    dialog.Commands.Add(new UICommand("确定", async cmd =>
                    {
                        var success = await Launcher.LaunchUriAsync(new Uri(a.Href, UriKind.Absolute));
                        if (success)
                        {
                            anchor.Foreground = new SolidColorBrush(Colors.Purple);
                        }
                    }));
                    dialog.Commands.Add(new UICommand("取消"));
                    await dialog.ShowAsync();
                };

                parent.Add(anchor);

                context.RenderNode(element, new SpanContainer(anchor));
            }
            else
            {
                context.RenderNode(element, parent);
            }
        }
Пример #7
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var span = new Span();

            var color = element.Style("color");

            if (string.IsNullOrEmpty(color) == false)
            {
                color = color.Trim().TrimStart('#');
                if (color.Length == 6)
                {
                    var  sR = color.Substring(0, 2);
                    var  sG = color.Substring(2, 2);
                    var  sB = color.Substring(4, 2);
                    byte r, g, b;
                    if (byte.TryParse(sR, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out r) &&
                        byte.TryParse(sG, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out g) &&
                        byte.TryParse(sB, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out b))
                    {
                        var value = Color.FromArgb(255, r, g, b);
                        if (value != Colors.White && value != Colors.Black)
                        {
                            span.Foreground = new SolidColorBrush(value);
                        }
                    }
                }
            }

            parent.Add(span);
            context.RenderNode(element, new SpanContainer(span));
        }
Пример #8
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var richEditBox = new RichEditBox();

            richEditBox.Document.SetText(TextSetOptions.None, element.TextContent);
            parent.Add(richEditBox);
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var span = new Span();

            parent.Add(span);
            context.RenderNode(element, new SpanContainer(span));
        }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var button = new Button()
     {
         Content = element.TextContent
     };
     parent.Add(button);
 }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var groupbox = parent as GroupBoxContainer;
     if (groupbox != null)
     {
         groupbox.SetHeader(element.TextContent);
     }
 }
Пример #12
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var groupbox = parent as GroupBoxContainer;

            if (groupbox != null)
            {
                groupbox.SetHeader(element.TextContent);
            }
        }
Пример #13
0
        private void CompileSelectedSubItems(RenderContextBase renderContext, object myParams)
        {
            // Compiles the selected triangles
            Point3D[]  pts;
            Vector3D[] selNormals;
            GetSelectedData(out pts, out selNormals);

            renderContext.DrawTriangles(pts, selNormals);
        }
Пример #14
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var button = new Button()
            {
                Content = element.TextContent
            };

            parent.Add(button);
        }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var paragraph = new Paragraph()
     {
         TextAlignment = TextAlignment.Center
     };
     parent.Add(paragraph);
     context.RenderNode(element, new ParagraphContainer(paragraph));
 }
Пример #16
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var paragraph = new Paragraph
            {
                Margin = new Thickness(0, 10, 0, 10)
            };

            parent.Add(paragraph);
            context.RenderNode(element, new ParagraphContainer(paragraph));
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var paragraph = new Paragraph()
            {
                TextAlignment = TextAlignment.Center
            };

            parent.Add(paragraph);
            context.RenderNode(element, new ParagraphContainer(paragraph));
        }
Пример #18
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var line = new Rectangle
     {
         MinWidth = double.MaxValue,
         MinHeight = 1,
         Fill = new SolidColorBrush(Colors.Gray),
         Margin = new Thickness(0, 5, 0, 5)
     };
     parent.Add(line);
 }
Пример #19
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var line = new Rectangle
            {
                MinWidth  = double.MaxValue,
                MinHeight = 1,
                Fill      = new SolidColorBrush(Colors.Gray),
                Margin    = new Thickness(0, 5, 0, 5)
            };

            parent.Add(line);
        }
Пример #20
0
        /// <inheritdoc/>
        public void DrawLineSegments(
            IList <ScreenPoint> points,
            OxyColor stroke,
            double thickness,
            EdgeRenderingMode edgeRenderingMode,
            double[] dashArray = null,
            LineJoin lineJoin  = LineJoin.Miter)
        {
            if (points.Count < 2 || !stroke.IsVisible() || thickness <= 0)
            {
                return;
            }

            var paint = this.GetLinePaint(stroke, thickness, edgeRenderingMode, dashArray, lineJoin);

            var skPoints = new SKPoint[points.Count];

            switch (edgeRenderingMode)
            {
            case EdgeRenderingMode.Automatic when this.RendersToPixels:
            case EdgeRenderingMode.Adaptive when this.RendersToPixels:
            case EdgeRenderingMode.PreferSharpness when this.RendersToPixels:
                var snapOffset = this.GetSnapOffset(thickness, edgeRenderingMode);
                for (var i = 0; i < points.Count - 1; i += 2)
                {
                    var p1 = points[i];
                    var p2 = points[i + 1];
                    if (RenderContextBase.IsStraightLine(p1, p2))
                    {
                        skPoints[i]     = this.ConvertSnap(p1, snapOffset);
                        skPoints[i + 1] = this.ConvertSnap(p2, snapOffset);
                    }
                    else
                    {
                        skPoints[i]     = this.Convert(p1);
                        skPoints[i + 1] = this.Convert(p2);
                    }
                }

                break;

            default:
                for (var i = 0; i < points.Count; i += 2)
                {
                    skPoints[i]     = this.Convert(points[i]);
                    skPoints[i + 1] = this.Convert(points[i + 1]);
                }

                break;
            }

            this.SkCanvas.DrawPoints(SKPointMode.Lines, skPoints, paint);
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var audio = (IHtmlAudioElement)element;

            var mediaElement = new MediaElement
            {
                Source = new Uri(audio.Source),
                AreTransportControlsEnabled = true,
                MinHeight = 65
            };

            parent.Add(mediaElement);
            context.RenderNode(element, parent);
        }
Пример #22
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var audio = (IHtmlAudioElement)element;

            var mediaElement = new MediaElement
            {
                Source = new Uri(audio.Source),
                AreTransportControlsEnabled = true,
                MinHeight = 65
            };

            parent.Add(mediaElement);
            context.RenderNode(element, parent);
        }
Пример #23
0
        /// <summary>
        /// Gets the <see cref="SKPoint"/>s that should actually be rendered from the list of <see cref="ScreenPoint"/>s, taking into account DPI scaling and snapping if necessary.
        /// </summary>
        /// <param name="screenPoints">The points.</param>
        /// <param name="strokeThickness">The stroke thickness.</param>
        /// <param name="edgeRenderingMode">The edge rendering mode.</param>
        /// <returns>The actual points.</returns>
        private IEnumerable <SKPoint> GetActualPoints(IList <ScreenPoint> screenPoints, double strokeThickness, EdgeRenderingMode edgeRenderingMode)
        {
            switch (edgeRenderingMode)
            {
            case EdgeRenderingMode.Automatic when this.RendersToPixels && RenderContextBase.IsStraightLine(screenPoints):
            case EdgeRenderingMode.Adaptive when this.RendersToPixels && RenderContextBase.IsStraightLine(screenPoints):
            case EdgeRenderingMode.PreferSharpness when this.RendersToPixels:
                var snapOffset = this.GetSnapOffset(strokeThickness, edgeRenderingMode);
                return(screenPoints.Select(p => this.ConvertSnap(p, snapOffset)));

            default:
                return(screenPoints.Select(this.Convert));
            }
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var hyperLink = new Hyperlink
            {
                NavigateUri = new Uri(element.GetAttribute("src"), UriKind.RelativeOrAbsolute),
                Foreground  = new SolidColorBrush(Colors.Red)
            };

            hyperLink.Inlines.Add(new Run()
            {
                Text = "无法显示 iframe 的内容,点击使用浏览器查看。"
            });
            parent.Add(hyperLink);
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var input = (IHtmlInputElement)element;
            var type  = input.Type ?? string.Empty;

            type = type.Trim();
            if (type.Length == 0)
            {
                type = "text";
            }
            type = type.ToLower();

            switch (type)
            {
            case "text":
            {
                var textbox = new TextBox
                {
                    Text = input.Value
                };
                parent.Add(textbox);
                break;
            }

            case "button":
            {
                var button = new Button
                {
                    Content = input.Value
                };
                parent.Add(button);
                break;
            }

            default:
            {
                if (Debugger.IsAttached)
                {
                    Debugger.Break();
                }
                var textblock = new TextBlock
                {
                    Text = string.Format("input type=\"{0}\" is not support.", input.Type)
                };
                parent.Add(textblock);
                break;
            }
            }
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var border = new Border
            {
                BorderThickness = new Thickness(1),
                BorderBrush = new SolidColorBrush(Colors.Gray),
                Margin = new Thickness(0, 5, 0, 5),
                Padding = new Thickness(10)
            };
            parent.Add(border);

            var richTextBlock = new RichTextBlock();
            border.Child = richTextBlock;
            context.RenderNode(element, new RichTextBlockContainer(richTextBlock));
        }
Пример #27
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var border = new Border
            {
                BorderThickness = new Thickness(1),
                BorderBrush     = new SolidColorBrush(Colors.Gray),
                Margin          = new Thickness(0, 5, 0, 5),
                Padding         = new Thickness(10)
            };

            parent.Add(border);

            var richTextBlock = new RichTextBlock();

            border.Child = richTextBlock;
            context.RenderNode(element, new RichTextBlockContainer(richTextBlock));
        }
Пример #28
0
        private void CompileSelectedEdges(RenderContextBase renderContext, object myParams)
        {
            var pts = new Point3D[selectedSubItems.Count * 6];

            for (int i = 0, count = 0; i < SelectedSubItems.Count; i++)
            {
                var tri1 = Triangles[SelectedSubItems[i]];
                pts[count++] = Vertices[tri1.V1];
                pts[count++] = Vertices[tri1.V2];
                pts[count++] = Vertices[tri1.V2];
                pts[count++] = Vertices[tri1.V3];
                pts[count++] = Vertices[tri1.V3];
                pts[count++] = Vertices[tri1.V1];
            }

            ((RenderContextBase)myParams).DrawLines(pts);
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var input = (IHtmlInputElement)element;
            var type = input.Type ?? string.Empty;
            type = type.Trim();
            if (type.Length == 0)
            {
                type = "text";
            }
            type = type.ToLower();

            switch (type)
            {
                case "text":
                    {
                        var textbox = new TextBox
                        {
                            Text = input.Value
                        };
                        parent.Add(textbox);
                        break;
                    }
                case "button":
                    {
                        var button = new Button
                        {
                            Content = input.Value
                        };
                        parent.Add(button);
                        break;
                    }
                default:
                    {
                        if (Debugger.IsAttached)
                        {
                            Debugger.Break();
                        }
                        var textblock = new TextBlock
                        {
                            Text = string.Format("input type=\"{0}\" is not support.", input.Type)
                        };
                        parent.Add(textblock);
                        break;
                    }
            }
        }
Пример #30
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var video = (IHtmlVideoElement)element;

            string source = video.Source;

            if (string.IsNullOrEmpty(source))
            {
                var sourceElement =
                    video.Children.FirstOrDefault(
                        temp => string.Equals(temp.TagName, "source", StringComparison.OrdinalIgnoreCase) && string.Equals(temp.GetAttribute("type"), "video/mp4", StringComparison.OrdinalIgnoreCase));
                if (sourceElement != null)
                {
                    source = sourceElement.GetAttribute("src");
                }
            }

            var mediaElement = new MediaElement
            {
                AreTransportControlsEnabled = true,
                MinHeight = 65
            };

            if (string.IsNullOrEmpty(source) == false)
            {
                mediaElement.Source = new Uri(source);
            }

            var width = video.DisplayWidth;

            if (width > 0)
            {
                mediaElement.Width = width;
            }

            var height = video.DisplayHeight;

            if (height > 0)
            {
                mediaElement.Height = height;
            }

            parent.Add(mediaElement);
        }
Пример #31
0
        public void CompileSelected(RenderContextBase renderContext)
        {
            VBOParams vboP = new VBOParams();

            Point3D[]  pts;
            Vector3D[] selNormals;
            GetSelectedData(out pts, out selNormals);

            vboP.vertices      = ConvertToFloatArray(pts);
            vboP.normals       = ConvertToFloatArray(selNormals);
            vboP.primitiveMode = primitiveType.TriangleList;

            renderContext.CompileVBO(drawSelectedData, CompileSelectedSubItems, vboP);

            renderContext.Compile(drawSelectedEdgesData, CompileSelectedEdges, renderContext);


            needsCompileSelected = false;
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var table = (IHtmlTableElement)element;

            var grid = new Grid();

            foreach (var child in table.Rows)
            {
                var row = child as IHtmlTableRowElement;
                if (row != null)
                {
                    grid.RowDefinitions.Add(new RowDefinition());
                    int columnCount = 0;
                    foreach (var column in row.Cells)
                    {
                        var richTextBlock = new RichTextBlock()
                        {
                            IsTextSelectionEnabled = false
                        };
                        var cellRender = new Border()
                        {
                            Child = richTextBlock,
                            Padding = new Thickness(5)
                        };
                        context.RenderNode(column, new RichTextBlockContainer(richTextBlock));
                        Grid.SetColumn(cellRender, columnCount);
                        Grid.SetRow(cellRender, grid.RowDefinitions.Count - 1);
                        grid.Children.Add(cellRender);

                        columnCount++;

                        if (grid.ColumnDefinitions.Count < columnCount)
                        {
                            grid.ColumnDefinitions.Add(new ColumnDefinition());
                        }
                    }
                }
            }

            parent.Add(grid);
        }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var table = (IHtmlTableElement)element;

            var grid = new Grid();

            foreach (var child in table.Rows)
            {
                var row = child as IHtmlTableRowElement;
                if (row != null)
                {
                    grid.RowDefinitions.Add(new RowDefinition());
                    int columnCount = 0;
                    foreach (var column in row.Cells)
                    {
                        var richTextBlock = new RichTextBlock()
                        {
                            IsTextSelectionEnabled = false
                        };
                        var cellRender = new Border()
                        {
                            Child   = richTextBlock,
                            Padding = new Thickness(5)
                        };
                        context.RenderNode(column, new RichTextBlockContainer(richTextBlock));
                        Grid.SetColumn(cellRender, columnCount);
                        Grid.SetRow(cellRender, grid.RowDefinitions.Count - 1);
                        grid.Children.Add(cellRender);

                        columnCount++;

                        if (grid.ColumnDefinitions.Count < columnCount)
                        {
                            grid.ColumnDefinitions.Add(new ColumnDefinition());
                        }
                    }
                }
            }

            parent.Add(grid);
        }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     context.RenderNode(element, parent);
 }
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var img = (IHtmlImageElement)element;
            var source = img.Source;
            if (string.IsNullOrEmpty(source))
            {
                return;
            }

            var image = new Image
            {
                Source = new BitmapImage(new Uri(source, UriKind.Absolute))
            };

            double scale = 1.0;

            int? width = img.Width();
            if (width.HasValue)
            {
                if (width.Value > Window.Current.Bounds.Width - 40)
                {
                    scale = (Window.Current.Bounds.Width - 40) / width.Value;
                }

                image.Width = width.Value * scale;
            }
            int? height = img.Height();
            if (height.HasValue)
            {
                image.Height = height.Value * scale;
            }

            DisplayInformation.GetForCurrentView().OrientationChanged +=
                (DisplayInformation sender, object args) =>
                {
                    if (sender.CurrentOrientation == DisplayOrientations.Portrait)
                    {
                        double scale1 = 1.0;

                        int? width1 = img.Width();
                        if (width1.HasValue)
                        {
                            if (width1.Value > Window.Current.Bounds.Width - 40)
                            {
                                scale1 = (Window.Current.Bounds.Width - 40) / width1.Value;
                            }

                            image.Width = width1.Value * scale1;
                        }
                        int? height1 = img.Height();
                        if (height1.HasValue)
                        {
                            image.Height = height1.Value * scale1;
                        }
                    }
                    else if (sender.CurrentOrientation == DisplayOrientations.Landscape || sender.CurrentOrientation == DisplayOrientations.LandscapeFlipped)
                    {
                        double scale1 = 1.0;

                        int? width1 = img.Width();
                        if (width1.HasValue)
                        {
                            if (width1.Value > Window.Current.Bounds.Width - 40)
                            {
                                scale1 = (Window.Current.Bounds.Width - 40) / width1.Value;
                            }

                            image.Width = width1.Value * scale1;
                        }
                        int? height1 = img.Height();
                        if (height1.HasValue)
                        {
                            image.Height = height1.Value * scale1;
                        }
                    }
                };

            parent.Add(image);
        }
Пример #36
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     parent.Add(new LineBreak());
 }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var bold = new Bold();
     parent.Add(bold);
     context.RenderNode(element, new SpanContainer(bold));
 }
Пример #38
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var italic = new Italic();
     parent.Add(italic);
     context.RenderNode(element, new SpanContainer(italic));
 }
 public override void OnAddToSystem(EntitySystem EntitySystem, RenderContextBase renderContext)
 {
     base.OnAddToSystem(EntitySystem, renderContext);
     this.EntitySystem  = EntitySystem;
     this.renderContext = renderContext;
 }
Пример #40
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     parent.Add(new LineBreak());
 }
Пример #41
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var parentContainer = (parent as RichTextBlockContainer).Get();

            Span span = new Span();
            Underline underline = null;

            var textDecoration = element.Style("text-decoration");
            if (!string.IsNullOrEmpty(textDecoration))
            {
                if (textDecoration == "underline")
                {
                    underline = new Underline();
                    underline.Inlines.Add(span);
                }
            }

            var color = element.Style("color");
            if (string.IsNullOrEmpty(color) == false)
            {
                color = color.Trim().TrimStart('#');
                if (color.Length == 6)
                {
                    var sR = color.Substring(0, 2);
                    var sG = color.Substring(2, 2);
                    var sB = color.Substring(4, 2);
                    byte r, g, b;
                    if (byte.TryParse(sR, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out r)
                        && byte.TryParse(sG, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out g)
                        && byte.TryParse(sB, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out b))
                    {
                        var value = Color.FromArgb(255, r, g, b);
                        if (value != Colors.White && value != Colors.Black)
                        {
                            if (underline != null)
                            {
                                underline.Foreground = new SolidColorBrush(value);
                            }
                            else
                            {
                                span.Foreground = new SolidColorBrush(value);
                            }
                        }
                    }
                }
            }

            var fontSize = element.Style("font-size");
            if (!string.IsNullOrEmpty(fontSize))
            {
                fontSize = fontSize.Replace("px", "");
                if (underline != null)
                {
                    underline.FontSize = double.Parse(fontSize);
                }
                else
                {
                    span.FontSize = double.Parse(fontSize);
                }
            }

            var fontWeight = element.Style("font-weight");
            if (!string.IsNullOrEmpty(fontWeight))
            {
                if (underline != null)
                {
                    underline.FontWeight = FontWeights.Bold;
                }
                else
                {
                    span.FontWeight = FontWeights.Bold;
                }
            }


            var textAlign = element.Style("text-align");
            if (!string.IsNullOrEmpty(textAlign))
            {
                if (textAlign == "left")
                {
                    parentContainer.TextAlignment = Windows.UI.Xaml.TextAlignment.Left;
                }
                else if (textAlign == "right")
                {
                    parentContainer.TextAlignment = Windows.UI.Xaml.TextAlignment.Right;
                }
                else
                {
                    parentContainer.TextAlignment = Windows.UI.Xaml.TextAlignment.Center;
                }
            }

            var textStyle = element.Style("text-style");
            if (!string.IsNullOrEmpty(textStyle))
            {
                if (textStyle == "italic")
                {
                    if (underline != null)
                    {
                        underline.FontStyle = FontStyle.Italic;
                    }
                    else
                    {
                        span.FontStyle = FontStyle.Italic;
                    }
                }
            }

            if (underline != null)
            {
                parent.Add(underline);
                context.RenderNode(element, new SpanContainer(underline));
            }
            else
            {
                parent.Add(span);
                context.RenderNode(element, new SpanContainer(span));
            }
        }
Пример #42
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     // under object always is flash,
     // so dont render object.
 }
Пример #43
0
        public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
        {
            var img    = (IHtmlImageElement)element;
            var source = img.Source;

            if (string.IsNullOrEmpty(source))
            {
                return;
            }

            var image = new Image
            {
                Source = new BitmapImage(new Uri(source, UriKind.Absolute))
            };

            double scale = 1.0;

            int?width = img.Width();

            if (width.HasValue)
            {
                if (width.Value > Window.Current.Bounds.Width - 40)
                {
                    scale = (Window.Current.Bounds.Width - 40) / width.Value;
                }

                image.Width = width.Value * scale;
            }
            int?height = img.Height();

            if (height.HasValue)
            {
                image.Height = height.Value * scale;
            }

            DisplayInformation.GetForCurrentView().OrientationChanged +=
                (DisplayInformation sender, object args) =>
            {
                if (sender.CurrentOrientation == DisplayOrientations.Portrait)
                {
                    double scale1 = 1.0;

                    int?width1 = img.Width();
                    if (width1.HasValue)
                    {
                        if (width1.Value > Window.Current.Bounds.Width - 40)
                        {
                            scale1 = (Window.Current.Bounds.Width - 40) / width1.Value;
                        }

                        image.Width = width1.Value * scale1;
                    }
                    int?height1 = img.Height();
                    if (height1.HasValue)
                    {
                        image.Height = height1.Value * scale1;
                    }
                }
                else if (sender.CurrentOrientation == DisplayOrientations.Landscape || sender.CurrentOrientation == DisplayOrientations.LandscapeFlipped)
                {
                    double scale1 = 1.0;

                    int?width1 = img.Width();
                    if (width1.HasValue)
                    {
                        if (width1.Value > Window.Current.Bounds.Width - 40)
                        {
                            scale1 = (Window.Current.Bounds.Width - 40) / width1.Value;
                        }

                        image.Width = width1.Value * scale1;
                    }
                    int?height1 = img.Height();
                    if (height1.HasValue)
                    {
                        image.Height = height1.Value * scale1;
                    }
                }
            };

            parent.Add(image);
        }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var span = new Span();
     parent.Add(span);
     context.RenderNode(element, new SpanContainer(span));
 }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     context.RenderNode(element, parent);
 }
Пример #46
0
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     var paragraph = new Paragraph();
     parent.Add(paragraph);
     context.RenderNode(element, new OrderListContainer(paragraph));
 }
Пример #47
0
 public override void OnAddToSystem(EntitySystem EntitySystem, RenderContextBase renderContext)
 {
     base.OnAddToSystem(EntitySystem, renderContext);
     this.EntitySystem = EntitySystem;
     this.renderContext = renderContext;
 }
 public virtual void RenderElement(IElement element, ITextContainer parent, RenderContextBase context)
 {
     // under object always is flash,
     // so dont render object.
 }