Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Menu osztály lehetővé teszi a parancsokhoz és eseménykezelőkhöz társított elemek hierarchikus sorrendbe rendezését. Minden Menu elem elemgyűjteményt MenuItem tartalmaz.
Menü vezérlőelem
A Menu vezérlő felsorolja azokat az elemeket, amelyek parancsokat vagy beállításokat ad meg egy alkalmazáshoz. Egy MenuItem kattintva általában megnyílik egy almenü, vagy egy alkalmazás parancsot hajt végre.
Menük létrehozása
Az alábbi példa létrehoz egy Menu szöveget egy .TextBox A Menu benne található MenuItem objektumok a , Command, és IsCheckable tulajdonságokat, valamint a Header, Checkedés Unchecked eseményeket használjákClick.
<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
MenuItems billentyűparancsokkal
A billentyűparancsok olyan karakterkombinációk, amelyeket a billentyűzettel meg lehet adni a parancsok meghívásához Menu . A Másolás parancsikonja például a CTRL+C billentyűkombináció. A billentyűparancsokkal és a menüelemekkel két tulajdonság használható –InputGestureText vagy Command.
InputGestureText
Az alábbi példa bemutatja, hogyan rendelhet billentyűparancsszöveget a vezérlőkhöz InputGestureText a MenuItem tulajdonság használatával. Ez csak a billentyűparancsot helyezi el a menüelemben. Nem társítja a parancsot a MenuItem. Az alkalmazásnak kezelnie kell a felhasználó bemenetét a művelet végrehajtásához.
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Parancs
Az alábbi példa bemutatja, hogyan társíthatja a tulajdonságot a CommandMegnyitásés mentés parancsok vezérlőkkel való MenuItem társításához. A parancstulajdonság nem csak parancsot társít egy MenuItemparancshoz, hanem a beviteli kézmozdulat szövegét is megadja, amelyet parancsikonként használ.
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Az MenuItem osztálynak van egy CommandTarget tulajdonsága is, amely meghatározza a parancs helyét. Ha CommandTarget nincs beállítva, a billentyűzetfókuszú elem megkapja a parancsot. A parancsokkal kapcsolatos további információkért tekintse meg a parancsok áttekintését.
Menü stílusa
A vezérlők stílusával jelentősen megváltoztathatja a vezérlők megjelenését és viselkedését Menu anélkül, hogy egyéni vezérlőt kellene írnia. A vizualizáció tulajdonságainak beállítása mellett a vezérlő egyes részeire is alkalmazhat Style , tulajdonságokon keresztül módosíthatja a vezérlő egyes részeinek viselkedését, vagy további részeket adhat hozzá, vagy módosíthatja a vezérlőelemek elrendezését. Az alábbi példák számos módot mutatnak be arra, hogyan adjunk hozzá egy Style a Menu vezérlőhöz.
Az első példakód egy Style úgynevezett nevet Simple határoz meg, amely bemutatja, hogyan használhatja az aktuális rendszerbeállításokat a stílusában. A kód a MenuHighlightBrush-t rendeli hozzá a menü háttérszíneként, és a MenuTextBrush-t a menü előtérszíneként. Figyelje meg, hogy erőforráskulcsokkal rendeli hozzá az ecseteket.
<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>
Az alábbi minta olyan elemeket használ Trigger , amelyek lehetővé teszik, hogy megváltoztassa a MenuItem megjelenést a következő Menueseményekre adott válaszként: Amikor az egeret az Menuegér fölé viszi, az előtér színe és a menüelemek betűtípus-jellemzői megváltoznak.
<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>
Lásd még
.NET Desktop feedback