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 a pulsanti o 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 sostituisce il 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 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 un tooltip relativamente a un altro elemento (in genere un oggetto contenitore).
Qui viene illustrato come usare la proprietà per visualizzare la KeyboardAcceleratorPlacementTarget combinazione di tasti di scelta rapida 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 descrizioni comando, che vengono visualizzate automaticamente quando l'utente sposta lo stato attivo su, preme e tiene premuto o posiziona il puntatore del mouse su un controllo. La descrizione comando può identificare se un controllo ha un acceleratore di tastiera associato e, in tal caso, qual è la combinazione di tasti.
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 associate agli oggetti MenuFlyoutItem e ToggleMenuFlyoutItem). Si noti che specificare in modo esplicito una descrizione comando sostituisce questo comportamento.
Per gli oggetti MenuFlyoutItem e ToggleMenuFlyoutItem, il tasto di scelta rapida viene visualizzato con il testo del flyout.
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 tasto di scelta rapida usando le proprietà di override del testo. VediMenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride e AppBarToggleButton.KeyboardAcceleratorTextOverride.
Un tasto di scelta rapida può essere un singolo tasto, 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 (mnemonici), che vengono in genere modificati con il tasto 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 di overflow e visualizzare l'elemento.
Per impostazione predefinita, un acceleratore ha un ambito globale. Tuttavia, è possibile vincolare l'ambito usando KeyboardAccelerator.ScopeOwner o disabilitare completamente un acceleratore usando KeyboardAccelerator.IsEnabled.