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>
藉由使用 KeyboardAcceleratorPlacementMode 控制展示行為,其接受兩種值:Auto 或 Hidden。
<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 和更新版本中,當宣告 KeyboardAccelerators 時,控制項預設會在工具提示 (中呈現對應的按鍵組合,除非它們與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完全停用快速鍵。