Condividi tramite


UIElement.KeyboardAccelerators Proprietà

Definizione

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

Gli acceleratori vengono in genere assegnati a pulsanti o 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à

Insieme di oggetti KeyboardAccelerator .

Esempio

Qui si specificano i tasti di scelta rapida per un set di pulsanti (si specifica una descrizione comando per Button1, che esegue l'override del comportamento di visualizzazione predefinito dell'acceleratore di tastiera).

<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 acceleratori di tastiera per un set di MenuFlyoutItem oggetti e ToggleMenuFlyoutItem . Il tasto di scelta rapida 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).

In questo esempio viene illustrato come usare la proprietà per visualizzare la KeyboardAcceleratorPlacementTarget combinazione di tasti di scelta rapida della tastiera per un pulsante Salva con il Grid contenitore 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é i tasti di scelta rapida non vengono in genere descritti direttamente nell'interfaccia utente dell'applicazione, è possibile migliorare l'individuabilità tramite le descrizioni comando, 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 tasto di scelta rapida associato e, in caso affermativo, qual è la combinazione di tasti di scelta rapida.

Windows 10 build 1703 e versioni successive hanno introdotto i tasti di scelta rapida. Tuttavia, questi collegamenti non sono stati visualizzati con l'interfaccia utente dei controlli corrispondenti.

In Windows 10 build 1803 e versioni successive, quando vengono dichiarati KeyboardAccelerators, i controlli presentano le combinazioni di tasti corrispondenti per impostazione predefinita in una descrizione comando (a meno che non siano associati a oggetti MenuFlyoutItem e ToggleMenuFlyoutItem).

Nota

Se si specifica una descrizione comando, questo comportamento viene ignorato.

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

Se un controllo ha più di un acceleratore definito, viene visualizzato 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. VedereMenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride e AppBarToggleButton.KeyboardAcceleratorTextOverride.

Un tasto di scelta rapida può essere un tasto singolo, ad esempio F1 - F12 e ESC, oppure una combinazione di tasti (CTRL + MAIUSC + B o CTRL C) che richiamano un comando. Differiscono dai tasti di scelta (mnemonic), che in genere vengono modificati con il tasto ALT e attivano semplicemente 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 di overflow e visualizzare l'elemento.

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

Si applica a

Vedi anche