Compartilhar via


Chaves de acesso VisualElement no Windows

As teclas de acesso são atalhos de teclado que melhoram a usabilidade e a acessibilidade dos aplicativos na Plataforma Universal do Windows (UWP), fornecendo uma maneira intuitiva para os usuários navegarem e interagirem rapidamente com a interface do usuário visível do aplicativo por meio de um teclado em vez de por meio de toque ou mouse. São combinações da tecla Alt e uma ou mais teclas alfanuméricas, normalmente pressionadas sequencialmente. Os atalhos de teclado são automaticamente suportados para teclas de acesso que usam um único caractere alfanumérico.

As dicas de tecla de acesso são emblemas flutuantes exibidos ao lado de controles que incluem chaves de acesso. Cada dica de tecla de acesso contém as chaves alfanuméricas que ativam o controle associado. Quando um usuário pressiona a tecla Alt, as dicas da tecla de acesso são exibidas.

Essa plataforma UWP específica é usada para especificar uma chave de acesso para um VisualElementarquivo . Ele é consumido em XAML definindo a propriedade anexada VisualElement.AccessKey como um valor alfanumérico e, opcionalmente, definindo a propriedade anexada VisualElement.AccessKeyPlacement como um valor da AccessKeyPlacement enumeração, a propriedade anexada VisualElement.AccessKeyHorizontalOffset como um double, e a propriedade anexada VisualElement.AccessKeyVerticalOffset como um 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>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

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);
...

O VisualElement.On<Windows> método especifica que esse específico da plataforma só será executado na Plataforma Universal do Windows. O VisualElement.SetAccessKey método, no Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace, é usado para definir o valor da chave de acesso para o VisualElement. O VisualElement.SetAccessKeyPlacement método, opcionalmente, especifica a posição a ser usada para exibir a dica de chave de acesso, com a AccessKeyPlacement enumeração fornecendo os seguintes valores possíveis:

  • Auto – indica que o posicionamento da ponta da chave de acesso será determinado pelo sistema operacional.
  • Top – indica que a ponta da tecla de acesso aparecerá acima da borda superior do VisualElement.
  • Bottom – indica que a ponta da tecla de acesso aparecerá abaixo da borda inferior do VisualElement.
  • Right – indica que a ponta da tecla de acesso aparecerá à direita da borda direita do VisualElement.
  • Left – indica que a ponta da tecla de acesso aparecerá à esquerda da borda esquerda do VisualElement.
  • Center – indica que a ponta da tecla de acesso aparecerá sobreposta no centro do VisualElement.

Observação

Normalmente, o posicionamento da dica de tecla é suficiente, o Auto que inclui suporte para interfaces de usuário adaptáveis.

Os VisualElement.SetAccessKeyHorizontalOffset métodos e VisualElement.SetAccessKeyVerticalOffset podem ser usados para um controle mais granular do local da ponta da chave de acesso. O argumento para o SetAccessKeyHorizontalOffset método indica até onde mover a ponta da tecla de acesso para a esquerda ou para a direita, e o argumento para o SetAccessKeyVerticalOffset método indica até onde mover a ponta da tecla de acesso para cima ou para baixo.

Observação

Os deslocamentos de dica de chave de acesso não podem ser definidos quando o posicionamento da chave de acesso é definido Auto.

Além disso, os GetAccessKeymétodos , GetAccessKeyHorizontalOffsetGetAccessKeyPlacement, e GetAccessKeyVerticalOffset podem ser usados para recuperar um valor de chave de acesso e seu local.

O resultado é que as dicas de teclas de acesso podem ser exibidas ao lado de quaisquer VisualElement instâncias que definam teclas de acesso, pressionando a tecla Alt:

Chaves de acesso VisualElement: específicas da plataforma

Quando um usuário ativa uma tecla de acesso, pressionando a tecla Alt seguida da tecla de acesso, a ação padrão para o VisualElement será executada. Por exemplo, quando um usuário ativa a tecla de acesso em um Switch, o Switch é alternado. Quando um usuário ativa a chave de acesso em um Entry, os Entry ganhos se concentram. Quando um usuário ativa a chave de acesso em um Button, o manipulador de eventos para o Clicked evento é executado.

Aviso

Por padrão, quando uma caixa de diálogo modal é exibida, todas as chaves de acesso definidas na página atrás da caixa de diálogo ainda podem ser ativadas. No entanto, a lógica personalizada pode ser gravada para desabilitar as chaves de acesso nesse cenário. Isso pode ser obtido manipulando o Dispatcher.AcceleratorKeyActivatedMainPage evento na classe do seu projeto UWP e no manipulador de eventos definindo a Handled propriedade dos argumentos do evento para true quando uma caixa de diálogo modal é exibida.

Para obter mais informações sobre chaves de acesso, consulte Chaves de acesso.