Come aprire una finestra di messaggio (WPF .NET)

Una finestra di messaggio è una finestra di dialogo usata per visualizzare rapidamente le informazioni e, facoltativamente, consentire agli utenti di prendere decisioni. L'accesso alla finestra di messaggio viene fornito dalla MessageBox classe . Viene visualizzata una finestra di messaggio in modalità modally. E il codice che visualizza la finestra di messaggio viene sospeso fino a quando l'utente non chiude la finestra di messaggio con il pulsante di chiusura o un pulsante di risposta.

La figura seguente illustra le parti di una finestra di messaggio:

Figura che mostra le parti di una finestra di messaggio per WPF.

  • Barra del titolo con didascalia (1).
  • Pulsante di chiusura (2).
  • Icona (3).
  • Messaggio visualizzato all'utente (4).
  • Pulsanti di risposta (5).

Per la presentazione o la raccolta di dati complessi, una finestra di dialogo potrebbe essere più adatta rispetto a una finestra di messaggio. Per altre informazioni, vedere Panoramica delle finestre di dialogo.

Visualizzare una finestra di messaggio

Per creare una finestra di messaggio, usare la MessageBox classe . Il MessageBox.Show metodo consente di configurare il testo, il titolo, l'icona e i pulsanti della finestra di messaggio, come illustrato nel codice seguente:

string messageBoxText = "Do you want to save changes?";
string caption = "Word Processor";
MessageBoxButton button = MessageBoxButton.YesNoCancel;
MessageBoxImage icon = MessageBoxImage.Warning;
MessageBoxResult result;

result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);
Dim messageBoxText As String = "Do you want to save changes?"
Dim caption As String = "Word Processor"
Dim Button As MessageBoxButton = MessageBoxButton.YesNoCancel
Dim Icon As MessageBoxImage = MessageBoxImage.Warning
Dim result As MessageBoxResult

result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)

Gli overload del MessageBox.Show metodo consentono di configurare la finestra di messaggio. Tali opzioni includono:

  • Didascalia della barra del titolo
  • Icona messaggio
  • Testo del messaggio
  • Pulsanti di risposta

Di seguito sono riportati altri esempi di utilizzo di una finestra di messaggio.

  • Visualizzare un avviso.

    MessageBox.Show("Unable to save file, try again.");
    
    MessageBox.Show("Unable to save file, try again.")
    

    Il codice precedente visualizza una finestra di messaggio simile all'immagine seguente:

    Finestra di messaggio semplice per WPF senza opzioni configurate.

    È consigliabile usare le opzioni fornite dalla classe della finestra di messaggio. Usando lo stesso avviso di prima, impostare più opzioni per renderlo più accattivante:

    MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error);
    
    MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error)
    

    Il codice precedente visualizza una finestra di messaggio simile all'immagine seguente:

    Finestra di messaggio di avviso per WPF con un'icona, una didascalia e un testo.

  • Visualizzare un avviso.

    MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning);
    
    MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning)
    

    Il codice precedente visualizza una finestra di messaggio simile all'immagine seguente:

    Finestra di messaggio semplice per WPF con un'icona di avviso.

  • Porre all'utente una domanda.

    if (MessageBox.Show("If the file save fails, do you want to automatically try again?",
                        "Save file",
                        MessageBoxButton.YesNo,
                        MessageBoxImage.Question) == MessageBoxResult.Yes)
    {
        // Do something here
    }
    
    If MessageBox.Show("If the file save fails, do you want to automatically try again?",
                       "Save file",
                       MessageBoxButton.YesNo,
                       MessageBoxImage.Question) = MessageBoxResult.Yes Then
    
        ' Do something here
    
    End If
    

    Il codice precedente visualizza una finestra di messaggio simile all'immagine seguente:

    Finestra di messaggio semplice per WPF che richiede all'utente di specificare una domanda sì o no.

Gestire una risposta a una finestra di messaggio

Il MessageBox.Show metodo visualizza la finestra di messaggio e restituisce un risultato. Il risultato indica come l'utente ha chiuso la finestra di messaggio:

result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);

switch (result)
{
    case MessageBoxResult.Cancel:
        // User pressed Cancel
        break;
    case MessageBoxResult.Yes:
        // User pressed Yes
        break;
    case MessageBoxResult.No:
        // User pressed No
        break;
}
result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)

Select Case result
    Case MessageBoxResult.Cancel
        ' User pressed Cancel
    Case MessageBoxResult.Yes
        ' User pressed Yes
    Case MessageBoxResult.No
        ' User pressed No
End Select

Quando un utente preme i pulsanti nella parte inferiore della finestra di messaggio, viene restituito il corrispondente MessageBoxResult . Tuttavia, se l'utente preme il tasto ESC o preme il pulsante Chiudi (2 nella illustrazione della finestra di messaggio), il risultato della finestra di messaggio varia in base alle opzioni del pulsante:

Opzioni dei pulsanti Risultato del pulsante ESC o Chiudi
OK OK
OKCancel Cancel
YesNo Tasto di scelta rapida ESC e pulsante Chiudi disabilitato. L'utente deve premere o No.
YesNoCancel Cancel

Per altre informazioni sull'uso delle finestre di messaggio, vedere MessageBox e l'esempio MessageBox.

Vedi anche