Jak ustawić fokus w UWP

Jak ustawić fokus w UWP
IP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Witam,

mam pewien problem w UWP, a dokładnie, chcę ustawić fokus na konkretny przycisk na danej stronie.
Mianowicie mam na stronie pewien UserControl, który posiada przycisk przejścia dalej, chciałbym zaraz po wejściu na stronę, za pomocą enter, móc ten przycisk kliknąć ( nie chcę na sztywno przypinać entera, bo czasami będę musiał pewne dane wprowadzić na tej stronie ), chodzi mi, aby fokus był ustawiony od razu na tym przycisku. W tym momencie jedyną możliwością jest przejściem Tab po wszystkich elementach UI, jest to uciążliwe. Szukałem już różnych rozwiązań, ale żadne nie pasuje pod przycisk w UserControl, który znajduje się na stronie.

Czy ktoś miał podobny problem w UWP?

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
1

Najgorsze co można było wybrać to UWP... Wszystko zależy od tego jaki element jest nadrzędnym w Page oraz w UserControl. Jeśli Grid to możesz spróbować tak:

Kopiuj
    public sealed partial class BlankPage1 : Page
    {
        public BlankPage1()
        {
            this.InitializeComponent();
        }

        public void FindMyButton()
        {
            //this = Page
            Grid grid = this.Content as Grid;

            IEnumerable<UserControl> userControls = grid.Children.OfType<UserControl>();

            UserControl myUserControl = userControls.FirstOrDefault(x => x.Name == "myUserControl");

            Grid myUserControlGrid = myUserControl.Content as Grid;

            IEnumerable<Button> buttons = myUserControlGrid.Children.OfType<Button>();

            Button myButton = buttons.FirstOrDefault(x=>x.Name == "btnMyButton");

            myButton.Focus(FocusState.Programmatic);
        }
    }

Pamiętaj, że to jest prowizorka żeby cię nakierować jak możesz to rozwiązać. Nie wiem jak wygląda twoje UI. Można też to zrobić w nieco skróconej wersji, ale specjalnie napisałem tyle linijek żebyś wiedział co się skąd bierze.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.