UIElement.KeyboardAccelerators Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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.