Compartilhar via


UIElement.KeyboardAccelerators Propriedade

Definição

Obtém a coleção de combinações de teclas que invocam uma ação usando o teclado.

Os aceleradores normalmente são atribuídos a botões ou itens de menu.

Exemplo de um menu mostrando aceleradores de teclado para vários itens de menu
Exemplo de um menu mostrando aceleradores de teclado para vários itens de menu

public:
 property IVector<KeyboardAccelerator ^> ^ KeyboardAccelerators { IVector<KeyboardAccelerator ^> ^ get(); };
IVector<KeyboardAccelerator> KeyboardAccelerators();
public IList<KeyboardAccelerator> KeyboardAccelerators { get; }
var iVector = uIElement.keyboardAccelerators;
Public ReadOnly Property KeyboardAccelerators As IList(Of KeyboardAccelerator)

Valor da propriedade

A coleção de objetos KeyboardAccelerator .

Requisitos do Windows

Família de dispositivos
Windows 10 Fall Creators Update (introduzida na 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v5.0)

Exemplos

Aqui, especificamos aceleradores de teclado para um conjunto de botões (especificamos uma dica de ferramenta para Button1, que substitui o comportamento de exibição do acelerador de teclado padrão).

<StackPanel x:Name="Container" Grid.Row="0" Background="AliceBlue">
    <Button Content="Button1" Margin="20"
            KeyboardAcceleratorPlacementMode="Auto"
            ToolTipService.ToolTip="Tooltip">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="A" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
    <Button Content="Button2"  Margin="20"
            KeyboardAcceleratorPlacementMode="Auto">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="B" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
    <Button Content="Button3"  Margin="20"
            KeyboardAcceleratorPlacementMode="Auto">
        <Button.KeyboardAccelerators>
            <KeyboardAccelerator  Key="C" Modifiers="Windows"/>
        </Button.KeyboardAccelerators>
    </Button>
</StackPanel>

Neste exemplo, especificamos aceleradores de teclado para um conjunto de objetos MenuFlyoutItem e ToggleMenuFlyoutItem. O acelerador de teclado é exibido no submenu do controle.

<AppBarButton AccessKey="R" Icon="Refresh" Label="Refresh" IsAccessKeyScope="True">
    <AppBarButton.Flyout>
        <MenuFlyout>
            <MenuFlyoutItem AccessKey="A" Icon="Refresh" Text="Refresh A">
                <MenuFlyoutItem.KeyboardAccelerators>
                    <KeyboardAccelerator Key="R" Modifiers="Control"/>
                </MenuFlyoutItem.KeyboardAccelerators>
            </MenuFlyoutItem>
            <MenuFlyoutItem AccessKey="B" Icon="Globe" Text="Refresh B" />
            <MenuFlyoutItem AccessKey="C" Icon="Globe" Text="Refresh C" />
            <MenuFlyoutItem AccessKey="D" Icon="Globe" Text="Refresh D" />
            <ToggleMenuFlyoutItem AccessKey="E" Icon="Globe" Text="ToggleMe">
                <MenuFlyoutItem.KeyboardAccelerators>
                    <KeyboardAccelerator Key="Q" Modifiers="Control"/>
                </MenuFlyoutItem.KeyboardAccelerators>
            </ToggleMenuFlyoutItem>
        </MenuFlyout>
    </AppBarButton.Flyout>
</AppBarButton>

Controle o comportamento de apresentação usando a propriedade KeyboardAcceleratorPlacementMode, que aceita dois valores: Automático ou Oculto.

<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
    <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="S" Modifiers="Control" />
    </Button.KeyboardAccelerators>
</Button>

Em alguns casos, talvez você precise apresentar uma dica de ferramenta referente a outro elemento (geralmente um objeto de contêiner). Por exemplo, um controle de pivô que exibe a dica de ferramenta para um PivotItem com o cabeçalho do pivô.

Aqui, mostramos como usar a propriedade KeyboardAcceleratorPlacementTarget para exibir a combinação de teclas do acelerador de teclado para um botão Salvar com o contêiner de grade em vez do botão.

<Grid x:Name="Container" Padding="30">
  <Button Content="Save"
    Click="OnSave"
    KeyboardAcceleratorPlacementMode="Auto"
    KeyboardAcceleratorPlacementTarget="{x:Bind Container}">
    <Button.KeyboardAccelerators>
      <KeyboardAccelerator  Key="S" Modifiers="Control" />
    </Button.KeyboardAccelerators>
  </Button>
</Grid>

Comentários

Como aceleradores de teclado normalmente não são descritos diretamente na interface do usuário do seu aplicativo UWP, você pode melhorar a detectabilidade por meio das dicas de ferramenta, que são exibidas automaticamente quando o usuário move o foco, pressiona e segura um item ou passa o ponteiro do mouse sobre um controle. A dica de ferramenta pode identificar se um controle tem um acelerador de teclado associado e, em caso afirmativo, qual é a combinação de teclas aceleradoras.

O Windows 10, versão 1703, introduziu atalhos de acelerador de teclado. No entanto, esses atalhos não foram exibidos com a interface do usuário de seus controles correspondentes.

A partir do Windows 10, versão 1803, quando KeyboardAccelerators são declarados, os controles apresentam as combinações de teclas correspondentes por padrão em uma dica de ferramenta (a menos que estejam associados aos objetos MenuFlyoutItem e ToggleMenuFlyoutItem ).

Observação

Especificar uma dica de ferramenta substitui esse comportamento.

Para objetos MenuFlyoutItem e ToggleMenuFlyoutItem), o acelerador de teclado é exibido com o texto do submenu.

Se um controle tiver mais de um acelerador definido, o primeiro acelerador registrado será apresentado.

Dependendo do controle, você pode substituir a cadeia de caracteres de combinação de teclas padrão associada a um acelerador de teclado usando propriedades de substituição de texto. Consulte MenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride e AppBarToggleButton.KeyboardAcceleratorTextOverride.

Uma tecla aceleradora pode ser uma única chave, como F1 – F12 e Esc, ou uma combinação de teclas (Ctrl + Shift + B ou Ctrl C) que invocam um comando. Elas diferem das chaves de acesso (mnemônicas), que normalmente são modificadas com a chave Alt e simplesmente ativam um comando ou controle.

Um acelerador pode ser executado mesmo se o elemento associado ao acelerador não estiver visível. Por exemplo, um item na coleção CommandBar.SecondaryCommands do CommandBar pode ser invocado usando um acelerador sem expandir o menu de estouro e exibir o elemento .

Por padrão, um acelerador tem escopo global. No entanto, você pode restringir o escopo usando KeyboardAccelerator.ScopeOwner ou desabilitar completamente um acelerador usando KeyboardAccelerator.IsEnabled.

Aplica-se a

Confira também