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);
}