private void TryFocus(bool wait) { if (wait) { QueryState = QueryFocusState.Wait; } if (QueryState == QueryFocusState.Wait) { QueryState = EnsureFocusWithinImpl() ? QueryFocusState.Got : QueryFocusState.Wait; } if (QueryState == QueryFocusState.Wait) { Element.InvokeOnLayoutUpdate(() => TryFocus(false)); } if (QueryState == QueryFocusState.Got && wait == false) { QueryFocusHelpers.Remove(this); } }
public void Cancel() { QueryState = QueryFocusState.None; QueryFocusHelpers.Remove(this); }