public static void PrintHerarchyDebugInfo <TDependencyObject, TStyle, TDependencyProperty>(
            this ITreeNodeProvider <TDependencyObject, TDependencyProperty> treeNodeProvider,
            IDependencyPropertyService <TDependencyObject, TStyle, TDependencyProperty> dependencyPropertyService,
            TDependencyObject styleResourceReferenceHolder,
            TDependencyObject startFrom,
            SelectorType type
            )
            where TDependencyObject : class
            where TStyle : class
            where TDependencyProperty : class
        {
            Debug.WriteLine("");
            Debug.WriteLine("------------------");
            Debug.WriteLine("Print FrameworkElement hierarchy: " + type.ToString());
            Debug.WriteLine("----------------");
            Debug.WriteLine("----------------");

            var s = startFrom ?? styleResourceReferenceHolder;

            Recursive(treeNodeProvider, dependencyPropertyService, s, 0, treeNodeProvider.GetParent(s, type), type);

            Debug.WriteLine("");
            Debug.WriteLine("Print DomElement hierarchy: " + type.ToString());
            Debug.WriteLine("----------------");

            var sDom = treeNodeProvider.GetDomElement(s);

            RecursiveDom(treeNodeProvider, sDom, 0, type == SelectorType.VisualTree ? sDom.Parent : sDom.LogicalParent, type);

            Debug.WriteLine("----------------");
            Debug.WriteLine("----------------");
        }
        protected override void DoEmit(XamlIlEmitContext context, IXamlIlEmitter codeGen)
        {
            var name = _type.ToString();

            EmitCall(context, codeGen,
                     m => m.Name == name && m.Parameters.Count == 1);
        }
示例#3
0
 protected override void DoEmit(XamlEmitContext <IXamlILEmitter, XamlILNodeEmitResult> context, IXamlILEmitter codeGen)
 {
     codeGen.Ldc_I4(_step);
     codeGen.Ldc_I4(_offset);
     EmitCall(context, codeGen,
              m => m.Name == _type.ToString() && m.Parameters.Count == 3);
 }
        protected override void DoEmit(XamlIlEmitContext context, IXamlIlEmitter codeGen)
        {
            codeGen.Ldstr(String);
            var name = _type.ToString();

            EmitCall(context, codeGen,
                     m => m.Name == name && m.Parameters.Count == 2 && m.Parameters[1].FullName == "System.String");
        }
示例#5
0
        public IEnumerable <IDomElement <TDependencyObject, TDependencyProperty> > GetDomElementChildren(IDomElement <TDependencyObject, TDependencyProperty> node, SelectorType type)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }
            if (node.Element == null)
            {
                throw new ArgumentNullException(nameof(node.Element));
            }

            if (type == SelectorType.LogicalTree)
            {
                return(node.LogicalChildNodes);
            }
            else if (type == SelectorType.VisualTree)
            {
                return(node.ChildNodes);
            }

            throw new Exception("Invalid SelectorType " + type.ToString());
        }
    public override string ToString()
    {
        //This spits out a JSON string to display the structure of this node.
        string name_formatted         = "\"name\":\"" + name + "\"";
        string display_name_formatted = "\"display_name\":\"" + display_name + "\"";

        string output = "{" + name_formatted + ", " + display_name_formatted;

        if (!isData)
        {
            output += ", \"type\":\"" + type.ToString() + "\"";

            List <string> childrenStrings = new List <string>();

            foreach (SelectorNode child in children)
            {
                childrenStrings.Add(child.ToString());
            }

            output += ", \"children\":[" + string.Join(", ", childrenStrings.ToArray()) + "]";
        }
        output += "}";
        return(output);
    }