Ключи доступа VisualElement в Windows

Клавиши доступа — это сочетания клавиш, которые повышают удобство использования и специальные возможности приложений на универсальная платформа Windows (UWP), предоставляя пользователям интуитивно понятный способ быстро перемещаться и взаимодействовать с видимым пользовательским интерфейсом приложения с помощью клавиатуры, а не с помощью сенсорного ввода или мыши. Они представляют собой сочетания клавиш ALT и одного или нескольких буквенно-цифровых клавиш, которые обычно нажимаются последовательно. Сочетания клавиш автоматически поддерживаются для ключей доступа, использующих один буквенно-цифровой символ.

Советы по ключу доступа отображаются рядом с элементами управления, включающими ключи доступа. Каждый совет ключа доступа содержит буквенно-цифровые ключи, которые активируют связанный элемент управления. Когда пользователь нажимает клавишу ALT, отображаются советы по ключу доступа.

Эта платформа UWP используется для указания ключа доступа для объекта VisualElement. Он используется в XAML, задав присоединенное свойство буквенно-цифровым значением, а при необходимости присвоив VisualElement.AccessKey VisualElement.AccessKeyPlacement присоединенное свойство значению AccessKeyPlacement перечисления, VisualElement.AccessKeyHorizontalOffset присоединенное свойство a doubleи VisualElement.AccessKeyVerticalOffset присоединенное свойство:double

<TabbedPage ...
            xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <ContentPage Title="Page 1"
                 windows:VisualElement.AccessKey="1">
        <StackLayout Margin="20">
            ...
            <Switch windows:VisualElement.AccessKey="A" />
            <Entry Placeholder="Enter text here"
                   windows:VisualElement.AccessKey="B" />
            ...
            <Button Text="Access key F, placement top with offsets"
                    Margin="20"
                    Clicked="OnButtonClicked"
                    windows:VisualElement.AccessKey="F"
                    windows:VisualElement.AccessKeyPlacement="Top"
                    windows:VisualElement.AccessKeyHorizontalOffset="20"
                    windows:VisualElement.AccessKeyVerticalOffset="20" />
            ...
        </StackLayout>
    </ContentPage>
    ...
</TabbedPage>

Кроме того, его можно использовать из C# с помощью api fluent:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

var page = new ContentPage { Title = "Page 1" };
page.On<Windows>().SetAccessKey("1");

var switchView = new Switch();
switchView.On<Windows>().SetAccessKey("A");
var entry = new Entry { Placeholder = "Enter text here" };
entry.On<Windows>().SetAccessKey("B");
...

var button4 = new Button { Text = "Access key F, placement top with offsets", Margin = new Thickness(20) };
button4.Clicked += OnButtonClicked;
button4.On<Windows>()
    .SetAccessKey("F")
    .SetAccessKeyPlacement(AccessKeyPlacement.Top)
    .SetAccessKeyHorizontalOffset(20)
    .SetAccessKeyVerticalOffset(20);
...

Метод VisualElement.On<Windows> указывает, что эта платформа будет выполняться только в универсальная платформа Windows. Метод VisualElement.SetAccessKey в Xamarin.Forms.PlatformConfiguration.WindowsSpecific пространстве имен используется для задания значения ключа доступа для VisualElementпространства имен. Метод VisualElement.SetAccessKeyPlacement , при необходимости указывает позицию, используемую для отображения подсказки ключа доступа, при AccessKeyPlacement этом перечисление предоставляет следующие возможные значения:

  • Auto — указывает, что размещение подсказки к ключу доступа определяется операционной системой.
  • Top — указывает, что подсказка ключа доступа появится над верхним краем VisualElement.
  • Bottom — указывает, что подсказка ключа доступа появится под нижним краем VisualElement.
  • Right — указывает, что подсказка ключа доступа появится справа от правого VisualElementкрая.
  • Left — указывает, что подсказка ключа доступа появится слева от левого VisualElementкрая.
  • Center — указывает, что подсказка ключа доступа появится наложенной на центр VisualElement.

Примечание.

Как правило, размещение подсказки ключа достаточно, Auto что включает поддержку адаптивных пользовательских интерфейсов.

Методы VisualElement.SetAccessKeyHorizontalOffset и VisualElement.SetAccessKeyVerticalOffset методы можно использовать для более детального управления расположением подсказки ключа доступа. Аргумент SetAccessKeyHorizontalOffset метода указывает, насколько далеко переместить подсказку ключа доступа слева или вправо, а аргумент метода SetAccessKeyVerticalOffset указывает, насколько далеко переместить подсказку ключа доступа вверх или вниз.

Примечание.

Смещения подсказки к ключу доступа не могут быть заданы при установке Autoразмещения ключа доступа.

Кроме того, GetAccessKeyGetAccessKeyPlacementGetAccessKeyHorizontalOffsetметоды и GetAccessKeyVerticalOffset методы можно использовать для получения значения ключа доступа и его расположения.

Результатом является то, что советы по ключу доступа можно отобразить рядом с любыми VisualElement экземплярами, определяющими ключи доступа, нажав клавиши ALT:

Ключи доступа VisualElement, зависящие от платформы

Когда пользователь активирует ключ доступа, нажав клавишу ALT, за которой следует ключ доступа, будет выполнено действие по умолчанию.VisualElement Например, когда пользователь активирует ключ доступа в объекте Switch, Switch он переключается. Когда пользователь активирует ключ доступа на объекте Entry, Entry фокус получается. Когда пользователь активирует ключ доступа в объекте Button, обработчик событий для Clicked события выполняется.

Предупреждение

По умолчанию при отображении модального диалогового окна все ключи доступа, определенные на странице под диалогом, все еще могут быть активированы. Однако пользовательская логика может быть записана, чтобы отключить ключи доступа в этом сценарии. Это можно достичь, обрабатывая Dispatcher.AcceleratorKeyActivated событие в MainPage классе проекта UWP, а в обработчике событий задается Handled свойство аргументов события при true отображении модального диалога.

Дополнительные сведения о ключах доступа см. в разделе "Ключи доступа".