Ejemplo n.º 1
0
        /// <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()));
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 public NodesToOwnerPartVisitor([NotNull] AssetPropertyGraphDefinition propertyGraphDefinition, [NotNull] INodeContainer nodeContainer, object ownerPart)
     : base(propertyGraphDefinition)
 {
     ownerPartNode = (IAssetObjectNode)nodeContainer.GetOrCreateNode(ownerPart);
 }