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++; } }
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); }
private void OnBackgroundChanged(object sender, EventArgs e) { renderQueue.InvokeAsync(() => HtmlElement.SetHtmlBackground(background, new Rect(Bounds.Size), factory, converter)); }
private void OnBackgroundChanged(object sender, EventArgs e) { renderQueue.InvokeAsync(SetBackground); }
private void OnForegroundChanged(object sender, EventArgs e) { renderQueue.InvokeAsync(() => HtmlElement.SetHtmlForeground(Foreground, converter)); }