UIElement.KeyboardAccelerators Proprietà

Definizione

Ottiene la raccolta di combinazioni di tasti che richiamano un'azione usando la tastiera.

Gli acceleratori vengono in genere assegnati ai pulsanti o alle voci di menu.

Esempio di menu che mostra gli acceleratori di tastiera per varie voci di menu
Esempio di menu che mostra gli acceleratori di tastiera per varie voci di 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)

Valore della proprietà

Raccolta di oggetti KeyboardAccelerator .

Requisiti Windows

Famiglia di dispositivi
Windows 10 Fall Creators Update (è stato introdotto in 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v5.0)

Esempio

In questo caso vengono specificati gli acceleratori di tastiera per un set di pulsanti (si specifica una descrizione comando per Button1, che esegue l'override del comportamento di visualizzazione dell'acceleratore di tastiera predefinito).

<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>

In questo esempio vengono specificati gli acceleratori di tastiera per un set di oggetti MenuFlyoutItem e ToggleMenuFlyoutItem. L'acceleratore di tastiera viene visualizzato nel riquadro a comparsa del controllo.

<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>

Controllare il comportamento della presentazione usando la proprietà KeyboardAcceleratorPlacementMode , che accetta due valori: Auto o Hidden.

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

In alcuni casi, potrebbe essere necessario presentare una descrizione comando rispetto a un altro elemento (in genere un oggetto contenitore). Ad esempio, un controllo Pivot che visualizza la descrizione comando per un oggetto PivotItem con l'intestazione Pivot.

In questo articolo viene illustrato come usare la proprietà KeyboardAcceleratorPlacementTarget per visualizzare la combinazione di tasti di scelta rapida per un pulsante Salva con il contenitore Grid anziché il pulsante .

<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>

Commenti

Poiché gli acceleratori di tastiera non sono in genere descritti direttamente nell'interfaccia utente dell'applicazione UWP, è possibile migliorare la individuabilità tramite le descrizioni comandi, che vengono visualizzate automaticamente quando l'utente sposta lo stato attivo su, preme e tiene premuto o passa il puntatore del mouse su un controllo. La descrizione comando può identificare se un controllo ha un acceleratore di tastiera associato e, in caso affermativo, qual è la combinazione di tasti di scelta rapida.

Windows 10, versione 1703, sono stati introdotti tasti di scelta rapida. Tuttavia, questi collegamenti non sono stati visualizzati con l'interfaccia utente dei relativi controlli corrispondenti.

A partire da Windows 10, versione 1803, quando gli oggetti KeyboardAccelerators sono dichiarati, i controlli presentano le combinazioni di tasti corrispondenti per impostazione predefinita in una descrizione comando (a meno che non siano associati agli oggetti MenuFlyoutItem e ToggleFlyoutItem).

Nota

Se si specifica una descrizione comando, viene eseguito l'override di questo comportamento.

Per gli oggetti MenuFlyoutItem e ToggleMenuFlyoutItem, l'acceleratore di tastiera viene visualizzato con il testo a comparsa.

Se un controllo ha più di un acceleratore definito, viene presentato il primo acceleratore registrato.

A seconda del controllo, è possibile eseguire l'override della stringa di combinazione di tasti predefinita associata a un acceleratore di tastiera usando le proprietà di override del testo. Vedere MenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride e AppBarToggleButton.KeyboardAcceleratorTextOverride.

Un tasto di scelta rapida può essere una singola chiave, ad esempio F1 - F12 e Esc, o una combinazione di tasti (CTRL + MAIUSC + B o CTRL C) che richiamano un comando. Differiscono dalle chiavi di accesso (mnemonics), che vengono in genere modificate con la chiave ALT e semplicemente attivano un comando o un controllo.

Un acceleratore può essere eseguito anche se l'elemento associato all'acceleratore non è visibile. Ad esempio, un elemento nell'insieme CommandBar.SecondaryCommands di CommandBar può essere richiamato usando un acceleratore senza espandere il menu overflow e visualizzare l'elemento.

Per impostazione predefinita, un acceleratore ha ambito globale. È tuttavia possibile limitare l'ambito usando KeyboardAccelerator.ScopeOwner o disabilitare completamente un acceleratore usando KeyboardAccelerator.IsEnabled.

Si applica a

Vedi anche