public void InsertChild(int index, object child)
        {
            IHtmlRenderElement childElement = (IHtmlRenderElement)child;

            if (child is IHtmlDeferredRenderElement)
            {
                ((IHtmlDeferredRenderElement)child).HtmlElementCreated += OnChildHtmlElementCreated;
            }

            if (IsLoaded)
            {
                childElement.Load();
            }

            children.Insert(index, childElement);
            if (childElement.HtmlElement != null)
            {
                if (index > lastDeferredChildIndex)
                {
                    index = index - deferredChildrenCount;
                }
                else
                {
                    lastDeferredChildIndex++;
                    index = children.Take(index).Count(c => c.HtmlElement != null);
                }

                renderQueue.InvokeAsync(() => HtmlElement.InsertChild(index, childElement.HtmlElement));
            }
            else
            {
                lastDeferredChildIndex = lastDeferredChildIndex.Max(index);
                deferredChildrenCount++;
            }
        }
Пример #2
0
        protected override void OnLoad()
        {
            base.OnLoad();

            if (geometryRenderResource != null)
            {
                geometryRenderResource.DataChanged += OnGeometryDataChanged;
                geometryRenderResource.Load();
            }

            renderQueue.InvokeAsync(() => HtmlElement.SetSvgGeometry(geometryRenderResource));
        }
        protected override void OnLoad()
        {
            base.OnLoad();

            svgDefinitionContainer.Add(this);

            if (transformRenderResource != null)
            {
                transformRenderResource.MatrixChanged += OnTransformRenderResourceMatrixChanged;
            }

            renderQueue.InvokeAsync(() => HtmlElement.SetSvgTransform(transformRenderResource?.Matrix, converter));
        }
        protected override void OnLoad()
        {
            base.OnLoad();

            if (clipRenderResource != null)
            {
                clipRenderResource.Load();
            }

            if (transformRenderResource != null)
            {
                transformRenderResource.MatrixChanged += OnTransformRenderResourceMatrixChanged;
            }

            renderQueue.InvokeAsync(() => HtmlElement.SetSvgTransform(transformRenderResource?.Matrix, converter));
        }
 protected override void OnOpacityChanged()
 {
     renderQueue.InvokeAsync(SetStop);
 }
Пример #6
0
 private void OnBackgroundChanged(object sender, EventArgs e)
 {
     renderQueue.InvokeAsync(() => HtmlElement.SetHtmlBackground(background, new Rect(Bounds.Size), factory, converter));
 }
Пример #7
0
 private void OnBackgroundChanged(object sender, EventArgs e)
 {
     renderQueue.InvokeAsync(SetBackground);
 }
Пример #8
0
 private void OnForegroundChanged(object sender, EventArgs e)
 {
     renderQueue.InvokeAsync(() => HtmlElement.SetHtmlForeground(Foreground, converter));
 }