Öffnen eines Meldungsfelds (WPF .NET)

Ein Meldungsfeld ist ein Dialogfeld, mit dem Textinformationen angezeigt werden können und mit dem Benutzer mithilfe von Schaltflächen Entscheidungen treffen können. Der Zugriff auf das Nachrichtenfeld wird von der MessageBox-Klasse bereitgestellt. Ein Meldungsfeld wird modal angezeigt. Und der Code, der das Meldungsfeld anzeigt, wird angehalten, bis der Benutzer das Meldungsfeld entweder mit der Schaltfläche "Schließen" oder einer Antwortschaltfläche schließt.

Die folgende Abbildung veranschaulicht die Teile eines Meldungsfelds:

Abbildung, die die Teile eines Meldungsfelds für WPF zeigt

  • Eine Titelleiste mit einer Beschriftung (1).
  • Eine Schaltfläche zum Schließen (2).
  • Symbol (3).
  • Meldung, die dem Benutzer angezeigt wird (4).
  • Antwortschaltflächen (5).

Zum Darstellen oder Sammeln komplexer Daten ist ein Dialogfeld möglicherweise besser geeignet als ein Meldungsfeld. Weitere Informationen finden Sie unter Übersicht über Dialogfelder.

Ein Meinungsfeld anzeigen

Um ein Meldungsfeld zu erstellen, verwenden Sie die MessageBox-Klasse. Mit der MessageBox.Show-Methode können Sie den Nachrichtenfeldtext, den Titel, das Symbol und die Schaltflächen konfigurieren, die im folgenden Code angezeigt werden:

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)

Die MessageBox.Show-Methodenüberladungen bieten Möglichkeiten zum Konfigurieren des Meldungsfelds. Die Optionen umfassen:

  • Titelleiste Beschriftung
  • Symbol-Nachricht
  • Meldungstext
  • Antwort Schaltflächen

Im Folgenden finden Sie einige weitere Beispiele für die Verwendung eines Meldungsfelds.

  • Anzeigen einer Warnung

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

    Im vorherigen Code wird ein Meldungsfeld wie in der folgenden Abbildung angezeigt:

    Einfaches Meldungsfeld für WPF ohne konfigurierte Optionen

    Es ist eine gute Idee, die von der Nachrichtenfeldklasse bereitgestellten Optionen zu verwenden. Legen Sie mit der gleichen Warnung wie zuvor weitere Optionen fest, um sie visuell ansprechender zu gestalten:

    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)
    

    Im vorherigen Code wird ein Meldungsfeld wie in der folgenden Abbildung angezeigt:

    Warnmeldungsfeld für WPF mit einem Symbol, einer Beschriftung und einem Text

  • Zeigt eine Warnung an.

    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)
    

    Im vorherigen Code wird ein Meldungsfeld wie in der folgenden Abbildung angezeigt:

    Einfaches Meldungsfeld für WPF, das ein Warnsymbol anzeigt

  • Stellen Sie dem Benutzer eine Frage.

    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
    

    Im vorherigen Code wird ein Meldungsfeld wie in der folgenden Abbildung angezeigt:

    Einfaches Meldungsfeld für WPF, das den Benutzer mit einer Frage zur Eingabe von „Ja“ oder „Nein“ auffordert

Behandeln einer Meldungsfeldantwort

Die MessageBox.Show-Methode zeigt das Meldungsfeld an und gibt ein Ergebnis zurück. Das Ergebnis gibt an, wie der Benutzer das Meldungsfeld geschlossen hat:

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

Wenn ein Benutzer die Schaltflächen am unteren Rand des Meldungsfelds drückt, wird das entsprechende MessageBoxResult zurückgegeben. Wenn der Benutzer jedoch die ESC-TASTE drückt oder die Schaltfläche Schließen (#2 in der Meldungsfelddarstellung) drückt, variiert das Ergebnis des Nachrichtenfelds je nach den Schaltflächenoptionen:

Schaltflächenoptionen ESC- oder Schaltflächenergebnis schließen
OK OK
OKCancel Cancel
YesNo ESC-Tastenkombination und Schaltfläche Schließen deaktiviert. Der Benutzer muss Ja oder Nein drücken.
YesNoCancel Cancel

Weitere Informationen zur Verwendung von Nachrichtenfeldern finden Sie im MessageBoxBeispiel MessageBox.

Siehe auch