UIElement.KeyboardAccelerators Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan kumpulan kombinasi kunci yang memanggil tindakan menggunakan keyboard.
Akselerator biasanya ditetapkan ke tombol atau item menu.
Contoh menu yang memperlihatkan akselerator keyboard untuk berbagai item 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)
Nilai Properti
Kumpulan objek KeyboardAccelerator .
Persyaratan Windows
Rangkaian perangkat |
Windows 10 Fall Creators Update (diperkenalkan dalam 10.0.16299.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v5.0)
|
Contoh
Di sini kita menentukan akselerator keyboard untuk satu set tombol (kami menentukan tipsalat untuk Button1, yang mengambil alih perilaku tampilan akselerator keyboard default).
<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>
Dalam contoh ini, kami menentukan akselerator keyboard untuk satu set objek MenuFlyoutItem dan ToggleMenuFlyoutItem. Akselerator keyboard ditampilkan di flyout kontrol.
<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>
Kontrol perilaku presentasi dengan menggunakan properti KeyboardAcceleratorPlacementMode , yang menerima dua nilai: Otomatis atau Tersembunyi.
<Button Content="Save" Click="OnSave" KeyboardAcceleratorPlacementMode="Auto">
<Button.KeyboardAccelerators>
<KeyboardAccelerator Key="S" Modifiers="Control" />
</Button.KeyboardAccelerators>
</Button>
Dalam beberapa kasus, Anda mungkin perlu menyajikan tipsalat relatif terhadap elemen lain (biasanya objek kontainer). Misalnya, kontrol Pivot yang menampilkan tipsalat untuk PivotItem dengan header Pivot.
Di sini, kami menunjukkan cara menggunakan properti KeyboardAcceleratorPlacementTarget untuk menampilkan kombinasi tombol akselerator keyboard untuk tombol Simpan dengan kontainer Grid alih-alih tombol.
<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>
Keterangan
Karena akselerator keyboard biasanya tidak dijelaskan langsung di UI aplikasi UWP Anda, Anda dapat meningkatkan penemuan melalui tipsalat, yang ditampilkan secara otomatis ketika pengguna memindahkan fokus ke, menekan dan menahan, atau mengarahkan penunjuk mouse ke atas kontrol. Tipsalat dapat mengidentifikasi apakah kontrol memiliki akselerator keyboard terkait dan, jika demikian, apa kombinasi tombol akseleratornya.
Windows 10, versi 1703, memperkenalkan pintasan akselerator keyboard. Namun, pintasan ini tidak ditampilkan dengan UI kontrol yang sesuai.
Dimulai dengan Windows 10, versi 1803, ketika KeyboardAccelerators dideklarasikan, kontrol menyajikan kombinasi kunci yang sesuai secara default dalam tipsalat (kecuali jika dikaitkan dengan objek MenuFlyoutItem dan ToggleMenuFlyoutItem).
Catatan
Menentukan tipsalat akan mengambil alih perilaku ini.
Untuk objek MenuFlyoutItem dan ToggleMenuFlyoutItem), akselerator keyboard ditampilkan dengan teks flyout.
Jika kontrol memiliki lebih dari satu akselerator yang ditentukan, akselerator terdaftar pertama akan disajikan.
Bergantung pada kontrol, Anda dapat mengganti string kombinasi tombol default yang terkait dengan akselerator keyboard menggunakan properti penimpaan teks. Lihat MenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride, dan AppBarToggleButton.KeyboardAcceleratorTextOverride.
Kunci akselerator dapat berupa satu kunci, seperti F1 - F12 dan Esc, atau kombinasi tombol (Ctrl + Shift + B, atau Ctrl C) yang memanggil perintah. Mereka berbeda dari kunci akses (mnemonics), yang biasanya dimodifikasi dengan kunci Alt dan cukup aktifkan perintah atau kontrol.
Akselerator dapat dieksekusi meskipun elemen yang terkait dengan akselerator tidak terlihat. Misalnya, item di koleksi CommandBar.SecondaryCommandsdari CommandBar dapat dipanggil menggunakan akselerator tanpa memperluas menu luapan dan menampilkan elemen .
Secara default, akselerator memiliki cakupan global. Namun, Anda dapat membatasi cakupan menggunakan KeyboardAccelerator.ScopeOwner atau menonaktifkan akselerator sepenuhnya menggunakan KeyboardAccelerator.IsEnabled.