UIElement.KeyboardAccelerators Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Auflistung von Tastenkombinationen ab, die eine Aktion mithilfe der Tastatur aufrufen.
Zugriffstasten werden in der Regel Schaltflächen oder Menüelementen zugewiesen.
Beispiel für ein Menü mit Zugriffstasten für verschiedene Menüelemente
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)
Eigenschaftswert
Die Auflistung von KeyboardAccelerator-Objekten .
Beispiele
Hier geben wir Tastenkombinationen für eine Reihe von Schaltflächen an (wir geben eine QuickInfo an, für Button1die das Standardmäßige Anzeigeverhalten der Zugriffstaste überschrieben wird).
<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 diesem Beispiel geben wir Zugriffstasten für eine Reihe von MenuFlyoutItem Objekten an ToggleMenuFlyoutItem . Die Zugriffstaste wird im Flyout des Steuerelements angezeigt.
<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>
Steuern Sie das Präsentationsverhalten mithilfe der KeyboardAcceleratorPlacementMode-Eigenschaft , die zwei Werte akzeptiert: Auto oder Ausgeblendet.
<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
<Button.KeyboardAccelerators>
<KeyboardAccelerator Key="S" Modifiers="Control" />
</Button.KeyboardAccelerators>
</Button>
In einigen Fällen müssen Sie möglicherweise einen Tooltip relativ an einem anderen Element (in der Regel einem Containerobjekt) darstellen.
Hier zeigen wir, wie Sie die KeyboardAcceleratorPlacementTarget Eigenschaft verwenden, um die Tastenkombination für eine Schaltfläche "Speichern" mit dem Grid Container anstelle der Schaltfläche anzuzeigen.
<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>
Hinweise
Da Tastenkombinationen in der Regel nicht direkt in der Benutzeroberfläche Ihrer Anwendung beschrieben werden, können Sie die Auffindbarkeit durch QuickInfos verbessern, die automatisch angezeigt werden, wenn der Benutzer den Fokus auf ein Steuerelement bewegt, gedrückt hält oder den Mauszeiger über ein Steuerelement bewegt. Mit der QuickInfo kann ermittelt werden, ob ein Steuerelement über eine zugeordnete Tastenkombination verfügt und, wenn ja, welche Tastenkombination es ist.
Windows 10 Build 1703 und höher wurden Tastenkombinationen eingeführt. Diese Tastenkombinationen wurden jedoch nicht mit der Benutzeroberfläche ihrer entsprechenden Steuerelemente angezeigt.
In Windows 10 Build 1803 und höher stellen Steuerelemente, wenn KeyboardAccelerators deklariert werden, standardmäßig die entsprechenden Tastenkombinationen in einer QuickInfo dar (es sei denn, sie sind mit MenuFlyoutItem- und ToggleMenuFlyoutItem-Objekten verknüpft). Beachten Sie, dass die explizite Angabe einer QuickInfo dieses Verhalten außer Kraft setzt.
Bei MenuFlyoutItem- und ToggleMenuFlyoutItem-Objekten wird die Zugriffstaste mit dem Flyouttext angezeigt.
Wenn ein Steuerelement mehrere Zugriffstasten definiert hat, wird die erste registrierte Zugriffstaste angezeigt.
Je nach Steuerelement können Sie die standardtastenkombinationszeichenfolge außer Kraft setzen, die einer [Tastenkombination mit Textüberschreibungseigenschaften] zugeordnet ist. SieheMenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride und AppBarToggleButton.KeyboardAcceleratorTextOverride.
Eine Tastenkombination kann eine einzelne Taste sein, z. B. F1 - F12 und ESC, oder eine Kombination aus Tasten (STRG+ UMSCHALT+ B oder STRG C), die einen Befehl aufrufen. Sie unterscheiden sich von Zugriffstasten (Mnemonics), die in der Regel mit der ALT-TASTE geändert werden und einfach einen Befehl oder ein Steuerelement aktivieren.
Eine Zugriffstaste kann auch dann ausgeführt werden, wenn das element, das der Zugriffstaste zugeordnet ist, nicht sichtbar ist. Beispielsweise kann ein Element in der CommandBar.SecondaryCommands-Auflistung der CommandBar mithilfe einer Zugriffstaste aufgerufen werden, ohne das Überlaufmenü zu erweitern und das Element anzuzeigen.
Standardmäßig verfügt eine Zugriffstaste über einen globalen Bereich. Sie können jedoch den Bereich mithilfe von KeyboardAccelerator.ScopeOwner einschränken oder eine Zugriffstaste vollständig mit KeyboardAccelerator.IsEnabled deaktivieren.