Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La Menu classe consente di organizzare gli elementi associati ai comandi e ai gestori eventi in un ordine gerarchico. Ogni Menu elemento contiene una raccolta di MenuItem elementi.
Stili e modelli
È possibile modificare l'impostazione predefinita ControlTemplate per assegnare al Menu controllo un aspetto univoco. Per altre informazioni, vedere Che cosa sono gli stili e i modelli? e Come creare un modello per un controllo.
Proprietà Content
Il Menu controllo utilizza la Items proprietà come proprietà del contenuto. Questa proprietà consente di popolare con Menu una raccolta di MenuItem elementi con cui gli utenti possono interagire.
Parti
Il Menu controllo non ha parti denominate.
Quando si crea un ControlTemplate per un Menu, il modello potrebbe contenere un ItemsPresenter all'interno di un ScrollViewer.
ItemsPresenter Visualizza ogni elemento nell'oggetto Menu. ScrollViewer consente lo scorrimento all'interno del controllo .
ItemsPresenter non è l'elemento figlio diretto di ScrollViewer, è necessario assegnare al ItemsPresenter il nome ItemsPresenter.
Stati di visualizzazione
Nella tabella seguente sono elencati gli stati di visualizzazione per il Menu controllo .
| Nome VisualState | Nome VisualStateGroup | Description |
|---|---|---|
| Valido | StatiDiValidazione | Il controllo usa la Validation classe e la Validation.HasError proprietà associata è false. |
| FuocoNonValido | StatiDiValidazione | La proprietà Validation.HasError associata è true quella che ha il controllo dello stato attivo. |
| Non valido se non focalizzato | StatiDiValidazione | La Validation.HasError proprietà associata è true quando il controllo non è in focus. |
Concetti chiave
I concetti seguenti sono importanti quando si lavora con il Menu controllo .
MenuItems con tasti di scelta rapida
I tasti di scelta rapida sono combinazioni di caratteri che possono essere inserite con la tastiera per richiamare Menu i comandi. Ad esempio, la scorciatoia per Copia è CTRL+C. Esistono due proprietà da usare con scelte rapide da tastiera e voci di menu,InputGestureText oppure Command.
InputGestureText
Utilizzare la InputGestureText proprietà per assegnare testo di scelta rapida da tastiera ai MenuItem controlli. In questo modo viene inserita solo la scelta rapida da tastiera nella voce di menu. Non associa il comando a MenuItem. L'applicazione deve gestire l'input dell'utente per eseguire l'azione.
Command
Utilizzare la Command proprietà per associare comandi come Apri e Salva ai MenuItem controlli. La proprietà del comando non solo associa un comando a un MenuItem, ma fornisce anche il testo del gesto di input da usare come scorciatoia.
La MenuItem classe dispone inoltre di una CommandTarget proprietà che specifica l'elemento in cui si verifica il comando. Se CommandTarget non è impostato, l'elemento con focus della tastiera riceve il comando. Per altre informazioni sui comandi, vedere Cenni preliminari sul comando.
Esempi
Negli esempi seguenti viene illustrato come usare il Menu controllo in scenari diversi.
Creazione di menu
Il Menu controllo presenta un elenco di elementi che specificano comandi o opzioni per un'applicazione. In genere, facendo clic su un MenuItem si apre un sottomenu o viene eseguito un comando dall'applicazione.
Nell'esempio seguente viene creato un oggetto Menu per modificare il testo in un oggetto TextBox. Menu contiene oggetti MenuItem che usano le proprietà Command, IsCheckable e Header e gli eventi Checked, Unchecked e 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
Uso di InputGestureText con MenuItems
Nell'esempio seguente viene illustrato come usare la InputGestureText proprietà per assegnare testo di scelta rapida da tastiera ai MenuItem controlli:
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Utilizzo della proprietà Command con MenuItems
Nell'esempio seguente viene illustrato come utilizzare la Command proprietà per associare i comandi Open e Save ai MenuItem controlli :
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
Vedere anche
.NET Desktop feedback