UIElement.KeyboardAccelerators プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
キーボードを使用してアクションを呼び出すキーの組み合わせのコレクションを取得します。
アクセラレータは通常、ボタンまたはメニュー項目に割り当てられます。
さまざまなメニュー項目のキーボード アクセラレータを示すメニューの例
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)
プロパティ値
KeyboardAccelerator オブジェクトのコレクション。
例
ここでは、一連のボタンにキーボード アクセラレータを指定します (既定のキーボード アクセラレータの表示動作をオーバーライドする Button1のツールヒントを指定します)。
<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>
この例では、一連の MenuFlyoutItem オブジェクトと ToggleMenuFlyoutItem オブジェクトのキーボード アクセラレータを指定します。 キーボード アクセラレータがコントロールのポップアップに表示されます。
<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>
2 つの値を受け入れる KeyboardAcceleratorPlacementMode プロパティを使用して、プレゼンテーションの動作を制御します: 自動 または 非表示。
<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
<Button.KeyboardAccelerators>
<KeyboardAccelerator Key="S" Modifiers="Control" />
</Button.KeyboardAccelerators>
</Button>
場合によっては、別の要素 (通常はコンテナー オブジェクト) に対してヒントを表示することが必要になる場合があります。
ここでは、 KeyboardAcceleratorPlacementTarget プロパティを使用して、[保存] ボタンのキーボード アクセラレータ キーの組み合わせを、ボタンの代わりに Grid コンテナーと共に表示する方法について説明します。
<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>
注釈
キーボード アクセラレータは通常、アプリケーションの UI で直接説明されないため、ツールヒントを使用して検出可能性を向上させることができます。 ツールヒントは、ユーザーがフォーカスを移動したり、コントロールの上にマウス ポインターを合わせたり、長押ししたりしたときに自動的に表示されます。 ツールヒントは、コントロールにキーボード アクセラレータが関連付けられているかどうか、および関連付けられている場合はアクセラレータ キーの組み合わせを識別できます。
Windows 10ビルド 1703 以降では、キーボード アクセラレータのショートカットが導入されました。 ただし、これらのショートカットは、対応するコントロールの UI では表示されませんでした。
Windows 10 ビルド 1803 以降では、KeyboardAccelerator が宣言されている場合、コントロールはツールヒントに対応するキーの組み合わせを既定で表示します (MenuFlyoutItem オブジェクトと ToggleMenuFlyoutItem オブジェクトに関連付けられていない限り)。 ツールヒントを明示的に指定すると、この動作がオーバーライドされることに注意してください。
MenuFlyoutItem オブジェクトと ToggleMenuFlyoutItem オブジェクトの場合、キーボード アクセラレータはポップアップ テキストと共に表示されます。
コントロールに複数のアクセラレータが定義されている場合は、最初に登録されたアクセラレータが表示されます。
コントロールに応じて、[テキスト オーバーライド プロパティを使用してキーボード アクセラレータ] に関連付けられている既定のキーの組み合わせ文字列をオーバーライドできます。 MenuFlyoutItem.KeyboardAcceleratorTextOverride、AppBarButton.KeyboardAcceleratorTextOverride、および AppBarToggleButton.KeyboardAcceleratorTextOverride を参照してください。
アクセラレータ キーには、F1 から F12、Esc などの 1 つのキー、またはコマンドを呼び出すキーの組み合わせ (Ctrl + Shift + B、または Ctrl C) を指定できます。 アクセス キー (ニーモニック) とは異なり、通常は Alt キーを使用して変更され、単にコマンドまたはコントロールをアクティブ化します。
アクセラレータに関連付けられている要素が表示されない場合でも、アクセラレータを実行できます。 たとえば、CommandBar の CommandBar.SecondaryCommands コレクション内の項目は、オーバーフロー メニューを展開したり要素を表示したりすることなく、アクセラレータを使用して呼び出すことができます。
既定では、アクセラレータにはグローバル スコープがあります。 ただし、 KeyboardAccelerator.ScopeOwner を 使用してスコープを制限したり、 KeyboardAccelerator.IsEnabled を使用してアクセラレータを完全に無効にしたりできます。