Jak otevřít okno se zprávou (WPF .NET)

Okno se zprávou je dialogové okno, které slouží k rychlému zobrazení informací a volitelně umožňuje uživatelům rozhodovat se. Třída poskytuje MessageBox přístup k poli zprávy. Okno se zprávou se zobrazí modálně. A kód, který zobrazí okno se zprávou, se pozastaví, dokud uživatel nezavře okno se zprávou buď pomocí tlačítka Zavřít, nebo tlačítka odpovědi.

Následující obrázek znázorňuje části pole se zprávou:

A figure that shows the parts of a message box for WPF.

  • Záhlaví s popis (1).
  • Tlačítko zavřít (2).
  • Ikona (3).
  • Zpráva zobrazená uživateli (4).
  • Tlačítka odpovědí (5).

Pro prezentaci nebo shromažďování složitých dat může být dialogové okno vhodnější než pole se zprávou. Další informace najdete v tématu Přehled dialogových oken.

Zobrazení okna se zprávou

Pokud chcete vytvořit okno se zprávou, použijte MessageBox třídu. Tato MessageBox.Show metoda umožňuje nakonfigurovat text pole se zprávou, název, ikonu a tlačítka zobrazená v následujícím kódu:

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)

Přetížení MessageBox.Show metody poskytují způsoby konfigurace pole zprávy. K těmto možnostem patří:

  • Záhlaví popis
  • Ikona zprávy
  • Text zprávy
  • Tlačítka odpovědí

Tady je několik dalších příkladů použití pole se zprávou.

  • Zobrazení výstrahy

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

    Předchozí kód zobrazí pole se zprávou jako na následujícím obrázku:

    A simple message box for WPF that has no options configured.

    Je vhodné použít možnosti poskytované třídou pole se zprávou. Když použijete stejnou výstrahu jako předtím, nastavte další možnosti, aby byla vizuálně přitažlivější:

    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)
    

    Předchozí kód zobrazí pole se zprávou jako na následujícím obrázku:

    A warning message box for WPF that has an icon, caption, and text.

  • Zobrazí upozornění.

    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)
    

    Předchozí kód zobrazí pole se zprávou jako na následujícím obrázku:

    A simple message box for WPF that has displays a warning icon.

  • Položte uživateli otázku.

    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
    

    Předchozí kód zobrazí pole se zprávou jako na následujícím obrázku:

    A simple message box for WPF that prompts the user with a yes or no question.

Zpracování odpovědi pole se zprávou

Metoda MessageBox.Show zobrazí okno se zprávou a vrátí výsledek. Výsledek označuje, jak uživatel zavřel okno se zprávou:

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

Když uživatel stiskne tlačítka v dolní části pole zprávy, vrátí se odpovídající MessageBoxResult . Pokud ale uživatel stiskne klávesu ESC nebo stiskne tlačítko Zavřít (#2 na obrázku pole se zprávou), výsledek pole zprávy se liší podle možností tlačítka:

Možnosti tlačítek Výsledek tlačítka ESC nebo Zavřít
OK OK
OKCancel Cancel
YesNo Klávesová zkratka ESC a zakázané tlačítko Zavřít Uživatel musí stisknout ano nebo ne.
YesNoCancel Cancel

Další informace o používání polí zpráv naleznete MessageBox v ukázce MessageBox.

Viz také