Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der Menu Klasse können Sie Elemente organisieren, die Befehlen und Ereignishandlern in einer hierarchischen Reihenfolge zugeordnet sind. Jedes Menu Element enthält eine Auflistung von MenuItem Elementen.
Menüsteuerung
Das Menu Steuerelement stellt eine Liste von Elementen dar, die Befehle oder Optionen für eine Anwendung angeben. Normalerweise öffnet das Klicken auf ein MenuItem Untermenü oder bewirkt, dass eine Anwendung einen Befehl durchführt.
Erstellen von Menüs
Im folgenden Beispiel wird ein Menu zum Manipulieren von Text in einem TextBox erstellt. Die Menu enthält MenuItem Objekte, die die Eigenschaften Command, IsCheckable und Header sowie die Ereignisse Checked, Unchecked und Click verwenden.
<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
Menüelemente mit Tastenkombinationen
Tastenkombinationen sind Zeichenkombinationen, die mit der Tastatur eingegeben werden können, um Befehle Menu aufzurufen. Die Tastenkombination für "Kopieren " lautet z. B. STRG+C. Es gibt zwei Eigenschaften, die mit Tastenkombinationen und Menüelementen verwendet werden sollen –InputGestureText oder Command.
Eingabegestentext
Das folgende Beispiel zeigt, wie Sie durch die Verwendung der InputGestureText-Eigenschaft Tastenkombinationstext MenuItem-Steuerelementen zuweisen. Dadurch wird nur die Tastenkombination im Menüelement platziert. Der Befehl wird nicht mit dem MenuItemBefehl verknüpft. Die Anwendung muss die Eingabe des Benutzers verarbeiten, um die Aktion auszuführen.
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Befehl
Das folgende Beispiel zeigt, wie Sie die Command Eigenschaft verwenden, um die Befehle "Öffnen" und " Speichern " den MenuItem Steuerelementen zuzuordnen. Die Befehlseigenschaft verknüpft nicht nur einen Befehl mit einem MenuItem, sondern stellt auch den Eingabegestentext bereit, der als Kurzbefehle verwendet werden soll.
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Die MenuItem Klasse verfügt auch über eine CommandTarget Eigenschaft, die das Element angibt, in dem der Befehl auftritt. Wenn CommandTarget nicht festgelegt ist, erhält das Element, das den Tastaturfokus hat, den Befehl. Weitere Informationen zu Befehlen finden Sie unter Commanding Overview.
Menügestaltung
Mit der Steuerelementformatierung können Sie die Darstellung und das Verhalten von Menu Steuerelementen erheblich ändern, ohne ein benutzerdefiniertes Steuerelement schreiben zu müssen. Zusätzlich zum Festlegen visueller Eigenschaften können Sie auch ein Style auf einzelne Teile eines Steuerelements anwenden, das Verhalten von Teilen des Steuerelements durch Eigenschaften ändern oder zusätzliche Komponenten hinzufügen sowie das Layout eines Steuerelements ändern. Die folgenden Beispiele veranschaulichen verschiedene Möglichkeiten, ein Style zu einem Menu-Steuerelement hinzuzufügen.
Im ersten Codebeispiel wird ein Style genanntes Simple
definiert, das zeigt, wie die aktuellen Systemeinstellungen in Ihrem Stil verwendet werden. Der Code weist die Farbe von MenuHighlightBrush
als Hintergrundfarbe des Menüs und die Farbe von MenuTextBrush
als Vordergrundfarbe des Menüs zu. Beachten Sie, dass Sie Ressourcenschlüssel verwenden, um die Pinsel zuzuweisen.
<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>
Im folgenden Beispiel werden Trigger-Elemente verwendet, mit denen Sie das Erscheinungsbild eines MenuItem ändern können, als Reaktion auf Ereignisse, die auf dem Menu auftreten. Wenn Sie mit der Maus über die MenuLeiste bewegen, ändern sich die Vordergrundfarbe und die Schriftarteigenschaften der Menüelemente.
<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>
Siehe auch
.NET Desktop feedback