Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ini Menu memungkinkan Anda mengatur elemen yang terkait dengan perintah dan penanganan aktivitas dalam urutan hierarkis. Setiap Menu elemen berisi kumpulan MenuItem elemen.
Gaya dan templat
Anda dapat memodifikasi default ControlTemplate untuk memberi Menu kontrol tampilan yang unik. Untuk informasi selengkapnya, lihat Apa itu gaya dan templat? dan Cara membuat templat untuk kontrol.
Properti konten
Kontrol Menu menggunakan Items properti sebagai properti kontennya. Properti ini memungkinkan Anda mengisi Menu dengan kumpulan elemen MenuItem yang dapat diinteraksikan oleh pengguna.
Bagian
Kontrol Menu tidak memiliki bagian manapun yang diberi nama.
Saat Anda membuat ControlTemplate untuk Menu, templat Anda mungkin berisi ItemsPresenter dalam ScrollViewer.
ItemsPresenter menampilkan setiap item di Menu; ScrollViewer memungkinkan pengguliran dalam kontrol.
ItemsPresenter Jika bukan anak langsung dari ScrollViewer, Anda harus memberikan ItemsPresenter nama, ItemsPresenter.
Keadaan visual
Tabel berikut mencantumkan status visual untuk Menu kontrol.
| Nama VisualState | Nama VisualStateGroup | Description |
|---|---|---|
| Sah | StatusValidasi | Kontrol menggunakan Validation kelas dan properti terlampir Validation.HasError adalah false. |
| FokusTidakValid | StatusValidasi | Properti terlampir Validation.HasError memiliki kontrol true yang berfokus. |
| Tidak valid dan Tidak Difokuskan | StatusValidasi | Properti Validation.HasErrortrue terlampir memiliki kontrol yang tidak berfokus. |
Konsep utama
Konsep berikut penting saat bekerja dengan Menu kontrol.
MenuItems dengan pintasan papan ketik
Pintasan keyboard adalah kombinasi karakter yang dapat dimasukkan dengan keyboard untuk memanggil perintah Menu. Misalnya, pintasan untuk Salin adalah CTRL+C. Ada dua properti untuk digunakan dengan pintasan keyboard dan item menu—InputGestureText atau Command.
InputGestureText
Gunakan properti InputGestureText untuk menetapkan teks pintasan keyboard ke kontrol MenuItem. Ini hanya menempatkan pintasan keyboard di item menu. Ini tidak mengaitkan perintah dengan MenuItem. Aplikasi harus menangani input pengguna untuk melakukan tindakan.
Command
Command Gunakan properti untuk mengaitkan perintah seperti Buka dan Simpan dengan MenuItem kontrol. Properti perintah tidak hanya mengaitkan perintah dengan MenuItem, tetapi juga menyediakan teks gerakan input untuk digunakan sebagai pintasan.
Kelas MenuItem ini juga memiliki CommandTarget properti, yang menentukan elemen tempat perintah terjadi. Jika CommandTarget tidak diatur, elemen yang memiliki fokus keyboard menerima perintah . Untuk informasi selengkapnya tentang perintah, lihat Gambaran Umum Perintah.
Examples
Contoh berikut menunjukkan cara menggunakan Menu kontrol dalam skenario yang berbeda.
Membuat menu
Kontrol Menu menyajikan daftar item yang menentukan perintah atau opsi untuk aplikasi. Biasanya, mengklik MenuItem membuka submenu atau menyebabkan aplikasi melakukan perintah.
Contoh berikut membuat Menu untuk memanipulasi teks dalam TextBox. Menu berisi MenuItem objek yang menggunakan properti Command, IsCheckable, dan Header serta peristiwa Checked, Unchecked, dan Click.
<Menu>
<MenuItem Header="_Edit">
<MenuItem Command="ApplicationCommands.Copy"/>
<MenuItem Command="ApplicationCommands.Cut"/>
<MenuItem Command="ApplicationCommands.Paste"/>
</MenuItem>
<MenuItem Header="_Font">
<MenuItem Header="_Bold" IsCheckable="True"
Checked="Bold_Checked"
Unchecked="Bold_Unchecked"/>
<MenuItem Header="_Italic" IsCheckable="True"
Checked="Italic_Checked"
Unchecked="Italic_Unchecked"/>
<Separator/>
<MenuItem Header="I_ncrease Font Size"
Click="IncreaseFont_Click"/>
<MenuItem Header="_Decrease Font Size"
Click="DecreaseFont_Click"/>
</MenuItem>
</Menu>
<TextBox Name="textBox1" TextWrapping="Wrap"
Margin="2">
The quick brown fox jumps over the lazy dog.
</TextBox>
private void Bold_Checked(object sender, RoutedEventArgs e)
{
textBox1.FontWeight = FontWeights.Bold;
}
private void Bold_Unchecked(object sender, RoutedEventArgs e)
{
textBox1.FontWeight = FontWeights.Normal;
}
private void Italic_Checked(object sender, RoutedEventArgs e)
{
textBox1.FontStyle = FontStyles.Italic;
}
private void Italic_Unchecked(object sender, RoutedEventArgs e)
{
textBox1.FontStyle = FontStyles.Normal;
}
private void IncreaseFont_Click(object sender, RoutedEventArgs e)
{
if (textBox1.FontSize < 18)
{
textBox1.FontSize += 2;
}
}
private void DecreaseFont_Click(object sender, RoutedEventArgs e)
{
if (textBox1.FontSize > 10)
{
textBox1.FontSize -= 2;
}
}
Private Sub Bold_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Bold
End Sub
Private Sub Bold_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Normal
End Sub
Private Sub Italic_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Italic
End Sub
Private Sub Italic_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Normal
End Sub
Private Sub IncreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize < 18 Then
textBox1.FontSize += 2
End If
End Sub
Private Sub DecreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize > 10 Then
textBox1.FontSize -= 2
End If
End Sub
Menggunakan InputGestureText dengan MenuItem
Contoh berikut menunjukkan cara menggunakan InputGestureText properti untuk menetapkan teks pintasan keyboard ke MenuItem kontrol:
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Menggunakan properti Perintah dengan MenuItems
Contoh berikut menunjukkan cara menggunakan Command properti untuk mengaitkan perintah Buka dan Simpan dengan MenuItem kontrol:
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Lihat juga
.NET Desktop feedback