/// <summary> /// Copies the common properties between the <paramref name="sourcePanel"/> and the <paramref name="targetPanel"/>. /// </summary> /// <remarks>The children are not copied.</remarks> /// <param name="nodeContainer">The node container.</param> /// <param name="sourcePanel">The source panel.</param> /// <param name="targetPanel">The target panel.</param> private static void CopyCommonProperties([NotNull] INodeContainer nodeContainer, Panel sourcePanel, Panel targetPanel) { var sourceNode = nodeContainer.GetOrCreateNode(sourcePanel); var targetNode = nodeContainer.GetOrCreateNode(targetPanel); foreach (var targetChild in targetNode.Members.Where(x => x.Name != nameof(Panel.Children) && x.Name != nameof(UIElement.Id))) { var name = targetChild.Name; var sourceChild = sourceNode.TryGetChild(name); if (sourceChild != null) { targetChild.Update(AssetCloner.Clone(sourceChild.Retrieve())); } } }
/// <summary> /// Copies the common properties between the <paramref name="sourcePanel"/> and the <paramref name="targetPanel"/>. /// </summary> /// <remarks>The children are not copied.</remarks> /// <param name="nodeContainer">The node container.</param> /// <param name="sourcePanel">The source panel.</param> /// <param name="targetPanel">The target panel.</param> private static void CopyCommonProperties([NotNull] INodeContainer nodeContainer, Panel sourcePanel, Panel targetPanel) { var sourceNode = nodeContainer.GetOrCreateNode(sourcePanel); var targetNode = nodeContainer.GetOrCreateNode(targetPanel); foreach (var targetChild in targetNode.Members.Where(x => x.Name != nameof(Panel.Children) && x.Name != nameof(UIElement.Id) && x.Name != nameof(UIElement.DependencyProperties))) { var name = targetChild.Name; var sourceChild = sourceNode.TryGetChild(name); if (sourceChild != null) { targetChild.Update(AssetCloner.Clone(sourceChild.Retrieve())); } } // Copy the dependency properties, eg. the source panel may be inside a grid and has set grid row/column sourcePanel.DependencyProperties.CopyTo(targetPanel.DependencyProperties); }
public NodesToOwnerPartVisitor([NotNull] AssetPropertyGraphDefinition propertyGraphDefinition, [NotNull] INodeContainer nodeContainer, object ownerPart) : base(propertyGraphDefinition) { ownerPartNode = (IAssetObjectNode)nodeContainer.GetOrCreateNode(ownerPart); }