private void OnChildWpfElementCreated(object sender, EventArgs e) { IWpfRenderElement childElement = (IWpfRenderElement)sender; int index = children.IndexOf(childElement); index = children.Take(index).Count(c => c.WpfElement != null); container.Children.Insert(index, childElement.WpfElement); }
public void RemoveChild(object child) { IWpfRenderElement childElement = (IWpfRenderElement)child; if (child is IWpfDeferredRenderElement) { ((IWpfDeferredRenderElement)child).WpfElementCreated -= OnChildWpfElementCreated; } children.Remove(childElement); if (childElement.WpfElement != null) { container.Children.Remove(childElement.WpfElement); } }
public void InsertChild(int index, object child) { IWpfRenderElement childElement = (IWpfRenderElement)child; if (child is IWpfDeferredRenderElement) { ((IWpfDeferredRenderElement)child).WpfElementCreated += OnChildWpfElementCreated; } children.Insert(index, childElement); if (childElement.WpfElement != null) { index = children.Take(index).Count(c => c.WpfElement != null); container.Children.Insert(index, childElement.WpfElement); } }