// Forward to the next element
private void Forward(UIElement element, bool click)
{
Detach();
if (click)
{
//element.RaiseEvent(new RoutedEventArgs(Button.ClickEvent, null));
var control = element as IKeyTipedControl;
if (control != null) control.OnKeyTipPressed();
element.UpdateLayout();
}
var children = LogicalTreeHelper.GetChildren(element)
.Cast<object>()
.Where(x => x is UIElement)
.Cast<UIElement>().ToArray();
if (children.Length == 0) { Terminate(); return; }
childAdorner = GetTopLevelElement(children[0]) != GetTopLevelElement(element) ?
new KeyTipAdorner(children[0], element, this) :
new KeyTipAdorner(element, element, this);
Detach();
childAdorner.Attach();
}