Share via


UIElement.KeyboardAccelerators Properti

Definisi

Mendapatkan kumpulan kombinasi tombol yang memanggil tindakan menggunakan keyboard.

Akselerator biasanya ditetapkan ke tombol atau item menu.

Contoh menu yang memperlihatkan akselerator keyboard untuk berbagai 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 .

Contoh

Di sini kita menentukan akselerator keyboard untuk sekumpulan 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 MenuFlyoutItem objek 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 yang relatif terhadap elemen lain (biasanya objek kontainer).

Di sini, kami menunjukkan cara menggunakan KeyboardAcceleratorPlacementTarget properti untuk menampilkan kombinasi tombol akselerator keyboard untuk tombol Simpan dengan Grid kontainer, bukan 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 Anda, Anda dapat meningkatkan kemampuan 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 build 1703 dan yang lebih baru memperkenalkan pintasan akselerator keyboard. Namun, pintasan ini tidak ditampilkan dengan UI kontrol yang sesuai.

Dalam Windows 10 build 1803 dan yang lebih baru, ketika KeyboardAccelerators dinyatakan, 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 mengambil alih string kombinasi tombol default yang terkait dengan [akselerator keyboard menggunakan properti penimpaan teks. LihatMenuFlyoutItem.KeyboardAcceleratorTextOverride, AppBarButton.KeyboardAcceleratorTextOverride, dan AppBarToggleButton.KeyboardAcceleratorTextOverride.

Tombol 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 dijalankan meskipun elemen yang terkait dengan akselerator tidak terlihat. Misalnya, item di kumpulan 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.

Berlaku untuk

Lihat juga