System.Windows.Automation.TreeWalker.GetNextSibling C# (CSharp) Method

GetNextSibling() public method

public GetNextSibling ( AutomationElement element ) : AutomationElement
element AutomationElement
return AutomationElement
        public AutomationElement GetNextSibling(AutomationElement element)
        {
            return GetNextSibling(element, CacheRequest.Current);
        }

Same methods

TreeWalker::GetNextSibling ( AutomationElement element, CacheRequest request ) : AutomationElement

Usage Example

        private void WalkTree(AutomationElement parent, TreeWalker walker, XmlWriter writer, IList<AutomationElement> elements)
        {
            var element = this.elementFactory.GetElement(parent);
            writer.WriteStartElement(element.TypeName);
            if (elements != null)
            {
                writer.WriteAttributeString("_index_", elements.Count.ToString());
                elements.Add(parent);
            }

            writer.WriteAttributeString("id", element.ID);
            writer.WriteAttributeString("framework", element.UIFramework);
            writer.WriteAttributeString("name", element.Name);
            writer.WriteAttributeString("value", element.Value);
            writer.WriteAttributeString("class", element.ClassName);
            writer.WriteAttributeString("help", element.Help);

            writer.WriteAttributeString("visible", element.Visible ? "true" : "false");
            writer.WriteAttributeString("enabled", element.Enabled ? "true" : "false");
            writer.WriteAttributeString("focusable", element.Focusable ? "true" : "false");
            writer.WriteAttributeString("focused", element.Focused ? "true" : "false");
            writer.WriteAttributeString("selected", element.Selected ? "true" : "false");
            writer.WriteAttributeString("protected", element.Protected ? "true" : "false");
            writer.WriteAttributeString("scrollable", element.Scrollable ? "true" : "false");

            writer.WriteAttributeString("handle", element.Handle.ToString());

            writer.WriteAttributeString("x", element.X.ToString());
            writer.WriteAttributeString("y", element.Y.ToString());
            writer.WriteAttributeString("width", element.Width.ToString());
            writer.WriteAttributeString("height", element.Height.ToString());
            writer.WriteAttributeString(
                "bounds",
                string.Format("[{0},{1}][{2},{3}]", element.X, element.Y, element.Width, element.Height));

            var node = walker.GetFirstChild(parent);
            var children = new List<AutomationElement>();
            while (node != null)
            {
                this.WalkTree(node, walker, writer, elements);
                children.Add(node);
                node = walker.GetNextSibling(node);

                // GetNextSibling may recursively return the first child again.
                if (node != null && children.Contains(node))
                {
                    logger.Warn("Next sibling node causes a loop. STOP!");
                    node = null;
                    break;
                }
            }

            writer.WriteEndElement();
        }
All Usage Examples Of System.Windows.Automation.TreeWalker::GetNextSibling