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 VisualElement
arquivo . 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 doVisualElement
.Bottom
– indica que a ponta da tecla de acesso aparecerá abaixo da borda inferior doVisualElement
.Right
– indica que a ponta da tecla de acesso aparecerá à direita da borda direita doVisualElement
.Left
– indica que a ponta da tecla de acesso aparecerá à esquerda da borda esquerda doVisualElement
.Center
– indica que a ponta 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 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 GetAccessKey
métodos , GetAccessKeyHorizontalOffset
GetAccessKeyPlacement
, 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:
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.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.