private void DeleteLayer(IRenderer renderer) { var element = renderer.Element; var parent = renderer.RendererParent.Element; // Check Selected Parent if (RendererTreeHelper .FindParents <IRenderer>(renderer) .Count(r => GroupSelector.IsSelected(r as FrameworkElement)) > 0) { return; } // * Task * if (renderer is IRendererLayout lRenderer) { TaskManager?.Push( new LayoutTaskData( RendererTaskType.Remove, lRenderer, () => RemoveElement(parent, element, true), () => AddElement(parent, element, true), () => RemoveElement(parent, element))); } else if (renderer is IRendererElement eRenderer) { TaskManager?.Push( new ElementTaskData( RendererTaskType.Remove, eRenderer, () => RemoveElement(parent, element, true), () => AddElement(parent, element, true), () => RemoveElement(parent, element))); } }
public ScreenRendererPackageFile(ScreenRenderer screenRenderer) { this.Name = $"{Path}/{LayoutExtension.GetPageName(screenRenderer.Model)}.xml"; List <IRenderer> childrens = RendererTreeHelper .FindChildrens <IRenderer>(screenRenderer) .ToList(); childrens.Insert(0, screenRenderer); this.Model = new ObjectContainer <RendererSurface>() { Items = childrens .Select(c => new RendererSurface() { Guid = c.Model.Guid, Metadata = c.Metadata, Location = new Point( Canvas.GetLeft(c.Element), Canvas.GetTop(c.Element)) }).ToList() }; base.CreateStream(); }
/// <summary> /// 이전 작업으로 돌아갑니다. /// </summary> public override void Undo() { base.Undo(); if (TaskType == RendererTaskType.Remove) { foreach (IRenderer child in RendererTreeHelper.FindChildrens <IRenderer>(Source)) { child.Element.AddAdorner((Adorner)child); } } }