Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Menu klassen kan du ordna element som är associerade med kommandon och händelsehanterare i hierarkisk ordning. Varje Menu element innehåller en samling MenuItem element.
Formatmallar och stilar
Du kan ändra standardvärdet ControlTemplate för att ge Menu kontrollen ett unikt utseende. Mer information finns i Vad är formatmallar och mallar? och Hur skapar du en mall för en kontroll.
Innehållsegenskap
Kontrollen Menu använder egenskapen Items som dess innehållsegenskap. Med den här egenskapen kan du fylla i Menu med en samling MenuItem element som användarna kan interagera med.
Delar
Kontrollen Menu har inga namngivna delar.
När du skapar en ControlTemplate för en Menukan mallen innehålla en ItemsPresenter i en ScrollViewer. Visar ItemsPresenter varje objekt i Menu; ScrollViewer aktiverar rullning i kontrollen. Om ItemsPresenter inte är direkt underordnad ScrollViewer, måste du ge ItemsPresenter namnet ItemsPresenter.
Visuella tillstånd
I följande tabell visas de visuella tillstånden Menu för kontrollen.
| VisualState-namn | VisualStateGroup-namn | Description |
|---|---|---|
| Giltigt | ValidationStates | Kontrollen använder Validation klassen och den Validation.HasError anslutna egenskapen är false. |
| OgiltigFocus | ValidationStates | Den Validation.HasError anslutna egenskapen är true när kontrollen har fokus. |
| OgiltigInteIFokus | ValidationStates | Den Validation.HasError anslutna egenskapen är true en kontroll som inte har fokus. |
Viktiga begrepp
Följande begrepp är viktiga när du arbetar med Menu-kontrollen.
Menyalternativ med kortkommandon
Kortkommandon är teckenkombinationer som kan anges med tangentbordet för att anropa Menu kommandon. Genvägen för Kopiera är till exempel CTRL+C. Det finns två egenskaper att använda med kortkommandon och menyalternativ,InputGestureText eller Command.
InputGestureText
Använd egenskapen InputGestureText för att tilldela kortkommandotext till MenuItem kontroller. Detta placerar bara kortkommandot i menyalternativet. Det associerar inte kommandot med MenuItem. Programmet måste hantera användarens indata för att utföra åtgärden.
Befallning
Använd egenskapen Command för att associera kommandon som Öppna och Spara med MenuItem kontroller. Kommandoegenskapen associerar inte bara ett kommando med en MenuItem, utan tillhandahåller även den indatagesttext som ska användas som en genväg.
Klassen MenuItem har också en CommandTarget egenskap som anger elementet där kommandot inträffar. Om CommandTarget inte har angetts får elementet som har tangentbordsfokus kommandot . Mer information om kommandon finns i Översikt över kommandon.
Examples
Följande exempel visar hur du Menu använder kontrollen i olika scenarier.
Skapa menyer
Kontrollen Menu visar en lista över objekt som anger kommandon eller alternativ för ett program. När du klickar på en MenuItem öppnas vanligtvis en undermeny eller gör att ett program utför ett kommando.
I följande exempel skapas en Menu för att ändra text i en TextBox. Menu innehåller MenuItem objekt som använder egenskaperna Command, IsCheckable och Header samt händelserna Checked, Unchecked och 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
Använda InputGestureText med menyalternativ
I följande exempel visas hur du använder InputGestureText egenskapen för att tilldela kortkommandotext till MenuItem kontroller:
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Använda egenskapen Command med MenuItems
I följande exempel visas hur du använder Command egenskapen för att associera kommandona Öppna och Spara med MenuItem kontroller:
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Se även
.NET Desktop feedback