Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de Menu klasse kunt u elementen ordenen die zijn gekoppeld aan opdrachten en gebeurtenis-handlers in een hiërarchische volgorde. Elk Menu element bevat een verzameling MenuItem elementen.
Stijlen en sjablonen
U kunt de standaardinstelling ControlTemplate wijzigen om het Menu besturingselement een uniek uiterlijk te geven. Zie Wat zijn stijlen en sjablonen voor meer informatie en hoe u een sjabloon voor een besturingselement maakt.
Inhoudseigenschap
Het Menu besturingselement gebruikt de Items eigenschap als inhoudseigenschap. Met deze eigenschap kunt u de Menu verzameling MenuItem elementen vullen waarmee gebruikers kunnen communiceren.
Onderdelen
Het Menu besturingselement heeft geen benoemde onderdelen.
Wanneer u een ControlTemplate voor een Menu maakt, bevat uw sjabloon mogelijk een ItemsPresenter in een ScrollViewer. Het ItemsPresenter toont elk item in de Menu; de ScrollViewer maakt scrollen binnen het besturingselement mogelijk. Als het ItemsPresenter niet het directe kind van de ScrollVieweris, moet u de ItemsPresenter naam opgeven. ItemsPresenter
Visuele statussen
De volgende tabel bevat de visuele statussen voor het Menu besturingselement.
| VisualState-naam | VisualStateGroup-naam | Description |
|---|---|---|
| Geldig | Validatiestatussen | Het besturingselement maakt gebruik van de Validation klasse en de Validation.HasError gekoppelde eigenschap is false. |
| Ongeldige focus | Validatiestatussen | De Validation.HasError gekoppelde eigenschap heeft true het besturingselement focus. |
| Ongeldige ongeconcentreerdheid | Validatiestatussen | De Validation.HasError gekoppelde eigenschap is actief wanneer het besturingselement true geen focus heeft. |
Belangrijke concepten
De volgende concepten zijn belangrijk bij het werken met het Menu besturingselement.
Menu-opties met sneltoetsen
Sneltoetsen zijn tekencombinaties die kunnen worden ingevoerd met het toetsenbord om opdrachten aan te roepen Menu . De sneltoets voor Kopiëren is bijvoorbeeld Ctrl+C. Er zijn twee eigenschappen die u kunt gebruiken met sneltoetsen en menu-items,InputGestureText of Command.
InvoerGebaarTekst
Gebruik de InputGestureText eigenschap om sneltoetstekst toe te wijzen aan MenuItem besturingselementen. Hiermee wordt alleen de sneltoets in het menu-item weergegeven. De opdracht wordt niet aan de MenuItemopdracht gekoppeld. De toepassing moet de invoer van de gebruiker verwerken om de actie uit te voeren.
Command
Gebruik de Command eigenschap om opdrachten zoals Openen en Opslaan te koppelen aan MenuItem besturingselementen. De opdrachteigenschap koppelt niet alleen een opdracht aan een MenuItem, maar levert ook de invoerbewegingstekst die moet worden gebruikt als snelkoppeling.
De MenuItem klasse heeft ook een CommandTarget eigenschap, waarmee het element wordt opgegeven waar de opdracht plaatsvindt. Als CommandTarget dit niet is ingesteld, ontvangt het element met de toetsenbordfocus de opdracht. Zie Overzicht van opdrachten voor meer informatie over opdrachten.
Voorbeelden
In de volgende voorbeelden ziet u hoe u het Menu besturingselement in verschillende scenario's kunt gebruiken.
Menu maken
Het Menu besturingselement bevat een lijst met items die opdrachten of opties voor een toepassing opgeven. Wanneer er op een MenuItem wordt geklikt, wordt meestal een submenu geopend of voert een toepassing een opdracht uit.
In het volgende voorbeeld wordt een Menu gemaakt om tekst in een TextBox te manipuleren. De Menu bevat MenuItem objecten die gebruikmaken van de Command, IsCheckableen Header eigenschappen en de Checked, Uncheckeden Click gebeurtenissen.
<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
InputGestureText gebruiken met MenuItems
In het volgende voorbeeld ziet u hoe u de InputGestureText eigenschap gebruikt om sneltoetstekst toe te wijzen aan MenuItem besturingselementen:
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Opdrachteigenschap gebruiken met MenuItems
In het volgende voorbeeld ziet u hoe u de Command eigenschap gebruikt om de opdrachten Openen en Opslaan te koppelen aan MenuItem besturingselementen:
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Zie ook
.NET Desktop feedback