Teclas de acesso do VisualElement no Windows
As teclas de acesso são atalhos de teclado que melhoram a usabilidade e a acessibilidade de 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 toque ou mouse. Eles são combinações da tecla Alt e uma ou mais teclas alfanuméricas, normalmente pressionadas sequencialmente. Os atalhos de teclado são suportados automaticamente para teclas de acesso que usam um único caractere alfanumérico.
As dicas de tecla de acesso são selos flutuantes exibidos ao lado de controles que incluem teclas de acesso. Cada dica de tecla de acesso contém as teclas 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 VisualElement
. Ele é consumido em XAML definindo a propriedade anexada VisualElement.AccessKey
como um valor alfanumérico e, opcionalmente, definindo a VisualElement.AccessKeyPlacement
propriedade anexada como um valor da enumeração, a VisualElement.AccessKeyHorizontalOffset
propriedade anexada AccessKeyPlacement
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 da tecla de acesso, com a AccessKeyPlacement
enumeração fornecendo os seguintes valores possíveis:
Auto
– indica que o posicionamento da dica da tecla de acesso será determinado pelo sistema operacional.Top
– indica que a dica da tecla de acesso aparecerá acima da borda superior doVisualElement
.Bottom
– indica que a dica da tecla de acesso aparecerá abaixo da borda inferior doVisualElement
.Right
– indica que a dica da tecla de acesso aparecerá à direita da borda direita doVisualElement
.Left
– indica que a dica da tecla de acesso aparecerá à esquerda da borda esquerda doVisualElement
.Center
– indica que a dica da tecla de acesso aparecerá sobreposta no centro doVisualElement
.
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 and VisualElement.SetAccessKeyVerticalOffset
podem ser usados para um controle mais granular do local da dica da chave de acesso. O argumento para o SetAccessKeyHorizontalOffset
método indica até que ponto mover a dica da tecla de acesso para a esquerda ou para a direita, e o argumento para o método indica até SetAccessKeyVerticalOffset
onde mover a dica da tecla de acesso para cima ou para baixo.
Observação
Os deslocamentos de dica de tecla de acesso não podem ser definidos quando o posicionamento da tecla de acesso é definido Auto
.
Além disso, os GetAccessKey
métodos , GetAccessKeyPlacement
, GetAccessKeyHorizontalOffset
, e GetAccessKeyVerticalOffset
podem ser usados para recuperar um valor de chave de acesso e sua localização.
O resultado é que as dicas de tecla de acesso podem ser exibidas ao lado de qualquer VisualElement
instância que defina as teclas de acesso, pressionando a tecla Alt:
Quando um usuário ativa uma tecla de acesso, pressionando a tecla Alt seguida da tecla de acesso, a ação padrão para a 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 tecla de acesso em um Entry
, o Entry
ganha foco. Quando um usuário ativa a chave de acesso em um Button
, o manipulador de eventos do Clicked
evento é executado.
Aviso
Por padrão, quando uma caixa de diálogo modal é exibida, todas as teclas de acesso definidas na página por trá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 feito manipulando o Dispatcher.AcceleratorKeyActivated
MainPage
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.