Программа uwp xbox Creator - фокус кнопки, как установить в коде программной части?

Я начинаю мучиться в программе Xbox UWP Creator Program. Я использую Windows Phone 7 и 8.

Мне не удалось понять, как установить фокус кнопок на желаемые кнопки с помощью кода или анимации раскадровки.

У меня есть одностраничное приложение, в котором всего 13 кнопок, но не все кнопки отображаются одновременно. Кнопки анимируются на экране парами (Да - Нет) с помощью Раскадровки.

При отображении первая кнопка имеет правильный фокус.

Следующие две кнопки отображаются после нажатия первой кнопки и деактивируются с помощью Visibility.Collapsed. Крайняя правая кнопка отображается с фокусом, если для этих кнопок установлено значение Visibility.Visible. Мне нужно, чтобы левая кнопка была в фокусе.

Вторая пара кнопок Да-Нет отображается, когда первая пара скрыта с помощью Visibility.Collapsed. Когда отображаются эти две кнопки, прямоугольник фокуса не виден. Появляется при перемещении левого джойстика или крестовины. Мне нужна самая левая кнопка, чтобы сфокусироваться.

Все остальные пары отображаются без установленного фокуса, как указано выше.

Я читал здесь документы:

Навигация по фокусу ...

Дизайн для Xbox и ТВ

Но, честно говоря, я немного озадачен тем, как установить или сбросить фокус на элементах пользовательского интерфейса, используя код программной части или StoryBoard.

Мне нужно использовать отдельные пары кнопок, а не просто использовать две кнопки (1 да, 1 нет и использование оператора case) по визуальным причинам. Таким образом, включение и выключение этих кнопок нарушает работу встроенного диспетчера фокуса визуального состояния.

Любые толчки в правильном направлении приветствуются.

Спасибо, -Дэвид


person David    schedule 28.11.2017    source источник


Ответы (1)


Например, установите фокус на кнопку с именем MyButton из кода программной части:

MyButton.Focus(FocusState.Programmatic);

Вы также можете найти следующие свойства элементов пользовательского интерфейса полезными:

  • TabIndex, чтобы изменить порядок, в котором элементы получают фокус.
  • AllowFocusOnInteraction, чтобы элемент пользовательского интерфейса не попадал в фокус при взаимодействии с ним.
person A. Milto    schedule 28.11.2017
comment
Спасибо за разъяснения по правильной команде. У меня проблема с синхронизацией между выполнением Storyboard и вызовами кода программной части. Я добавил вызов ожидания Task.Delay (3000); который примерно равен длине раскадровки, а затем фокус переключается. - person David; 30.11.2017