private AutomationElement GetNextDirectSibling (AutomationElement element)
{
AutomationElement parent = TreeWalker.RawViewWalker.GetParent (element);
AutomationElement nextSibling = null;
if (parent == AutomationElement.RootElement)
lock (TreeWalker.RawViewWalker.directChildrenLock) {
int nextIndex = TreeWalker.RawViewWalker.directChildren.IndexOf (element) + 1;
if (nextIndex > -1 && nextIndex < TreeWalker.RawViewWalker.directChildren.Count)
nextSibling = TreeWalker.RawViewWalker.directChildren [nextIndex];
else
nextSibling = null;
}
else
nextSibling = SourceManager.GetOrCreateAutomationElement (element.SourceElement.NextSibling);
return nextSibling;
}