Anteckning
Å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 klassen Menu kan du ordna element som är associerade med kommandon och händelsehanterare i hierarkisk ordning. Varje Menu-element innehåller en samling MenuItem element.
Menykontroll
Kontrollen Menu visar en lista med 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.
Skapa menyer
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, IsCheckableoch Header och Checked, Uncheckedoch Click händelser.
<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
Menyobjekt 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.
InmatningsGesterText
I följande exempel visas hur du använder 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.
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Kommando
I följande exempel visas hur du använder egenskapen Command för att associera kommandona Ö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 genväg.
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Klassen MenuItem har också en egenskap för CommandTarget, som anger elementet där kommandot inträffar. Om CommandTarget inte har angetts tar elementet med tangentbordsfokus emot kommandot. Mer information om kommandon finns i Översikt över kommandon.
Formatering av meny
Med kontrollformatering kan du dramatiskt ändra utseendet och beteendet för Menu kontroller utan att behöva skriva en anpassad kontroll. Förutom att ange visuella egenskaper kan du även använda en Style för enskilda delar av en kontroll, ändra beteendet för delar av kontrollen via egenskaper eller lägga till ytterligare delar eller ändra layouten för en kontroll. I följande exempel visas flera sätt att lägga till en Style till en Menu kontroll.
Det första kodexemplet definierar en Style med namnet Simple som visar hur du använder de aktuella systeminställningarna i ditt format. Koden tilldelar färgen på MenuHighlightBrush som menyns bakgrundsfärg och MenuTextBrush som menyns förgrundsfärg. Observera att du använder resursnycklar för att tilldela penslar.
<Style x:Key="Simple" TargetType="{x:Type MenuItem}">
<Setter Property = "Background" Value= "{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}"/>
<Setter Property = "Foreground" Value= "{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
<Setter Property = "Height" Value= "{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"/>
</Style>
I följande exempel används Trigger element som gör att du kan ändra utseendet på en MenuItem som svar på händelser som inträffar på Menu. När du flyttar musen över Menuändras förgrundsfärgen och teckensnittsegenskaperna för menyalternativen.
<Style x:Key="Triggers" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="true">
<Setter Property = "Foreground" Value="Red"/>
<Setter Property = "FontSize" Value="16"/>
<Setter Property = "FontStyle" Value="Italic"/>
</Trigger>
</Style.Triggers>
</Style>
Se även
.NET Desktop feedback