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物件的集合。
Windows 需求
裝置系列 |
Windows 10 Fall Creators Update (已於 10.0.16299.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v5.0 引進)
|
範例
在這裡,我們會為一組按鈕指定鍵盤快速鍵, (我們指定 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>
藉由使用 KeyboardAcceleratorPlacementMode 控制展示行為,其接受兩種值:Auto 或 Hidden。
<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
<Button.KeyboardAccelerators>
<KeyboardAccelerator Key="S" Modifiers="Control" />
</Button.KeyboardAccelerators>
</Button>
在某些案例中,您可能需要在相對於其他元素的位置顯示工具提示 (通常是容器物件)。 例如,使用 Pivot 標頭顯示 PivotItem 工具提示的 Pivot 控制項。
在這裡,我們示範如何使用 KeyboardAcceleratorPlacementTarget 屬性顯示附帶 Grid 容器之 Save 按鈕 (而非按鈕) 的鍵盤快速按鍵組合。
<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>
備註
鍵盤快速操作通常不會直接在您 UWP 應用程式的 UI 中描述,您可以透過工具提示改善發現性。工具提示會在使用者將焦點移動到控制項、按住不放,或滑鼠指標在控制項上暫留時自動顯示。 工具提示可識別控制項是否有相關聯的鍵盤快速操作,以及快速按鍵組合為何 (若有的話)。
Windows 10 1703 版引進鍵盤快速鍵。 不過,這些快捷方式未顯示其對應控制項的 UI。
從 Windows 10 1803 版開始,當宣告 KeyboardAccelerator 時,控制項預設會在工具提示 (中呈現對應的按鍵組合,除非它們與MenuFlyoutItem和ToggleMenuFlyoutItem物件相關聯) 。
注意
指定工具提示會覆寫此行為。
對於 MenuFlyoutItem 和 ToggleMenuFlyoutItem) 物件,鍵盤快速鍵會顯示飛出視窗文字。
如果控制項已定義多個快速鍵,則會顯示第一個已註冊的快速鍵。
視控制項而定,您可以使用文字覆寫屬性覆寫與鍵盤快速鍵相關聯的預設按鍵組合字元串。 請參閱 MenuFlyoutItem.KeyboardAcceleratorTextOverride、 AppBarButton.KeyboardAcceleratorTextOverride和 AppBarToggleButton.KeyboardAcceleratorTextOverride。
快速鍵可以是單一按鍵,例如 F1 - F12 和 Esc, (或是叫用命令的 Ctrl + Shift + B 或 Ctrl C) 複合鍵。 它們不同于便捷鍵 (助憶鍵) ,通常是使用 ALT 鍵進行修改,而且只要啟用命令或控制項即可。
即使看不到與快速鍵相關聯的專案,也可以執行快速鍵。 例如,您可以使用快速鍵叫用CommandBar 的 CommandBar.SecondaryCommands集合中的專案,而不需展開溢位功能表並顯示元素。
根據預設,加速器具有全域範圍。 不過,您可以使用 KeyboardAccelerator.ScopeOwner 限制範圍,或使用 KeyboardAccelerator.IsEnabled完全停用快速鍵。