MessageDialog Classe

Définition

Représente une boîte de dialogue permettant d’afficher des messages à l’utilisateur.

Dans une application de bureau, avant d’utiliser une instance de cette classe d’une manière qui affiche l’interface utilisateur, vous devez associer l’objet au handle de fenêtre de son propriétaire. Pour plus d’informations et des exemples de code, consultez Afficher des objets d’interface utilisateur WinRT qui dépendent de CoreWindow.

Important

Vous devez utiliser MessageDialog uniquement lorsque vous mettez à niveau une application Windows 8.x universelle qui utilise MessageDialog et que vous devez réduire les modifications ou si votre application n’est pas XAML. Pour les nouvelles applications XAML dans Windows 10+, nous vous recommandons d’utiliser le contrôle ContentDialog à la place.

public ref class MessageDialog sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Popups.IMessageDialogFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
class MessageDialog final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Popups.IMessageDialogFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class MessageDialog final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Popups.IMessageDialogFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
public sealed class MessageDialog
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Popups.IMessageDialogFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class MessageDialog
function MessageDialog(content, title)
Public NotInheritable Class MessageDialog
Héritage
Object Platform::Object IInspectable MessageDialog
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

L’exemple suivant montre comment ajouter des commandes à une boîte de dialogue de message et l’afficher. Pour obtenir l’exemple de code complet, consultez Exemple de boîte de dialogue message.

using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using SDKTemplate;
using System;

private async void CancelCommandButton_Click(object sender, RoutedEventArgs e)
{
    // Create the message dialog and set its content
    var messageDialog = new MessageDialog("No internet connection has been found.");

    // Add commands and set their callbacks; both buttons use the same callback function instead of inline event handlers
    messageDialog.Commands.Add(new UICommand(
        "Try again", 
        new UICommandInvokedHandler(this.CommandInvokedHandler)));
    messageDialog.Commands.Add(new UICommand(
        "Close", 
        new UICommandInvokedHandler(this.CommandInvokedHandler)));

    // Set the command that will be invoked by default
    messageDialog.DefaultCommandIndex = 0;

    // Set the command to be invoked when escape is pressed
    messageDialog.CancelCommandIndex = 1;

    // Show the message dialog
    await messageDialog.ShowAsync();
}

private void CommandInvokedHandler(IUICommand command)
{
    // Display message showing the label of the command that was invoked
    rootPage.NotifyUser("The '" + command.Label + "' command has been selected.", 
        NotifyType.StatusMessage);
}
// MainPage.cpp
#include "pch.h"
#include "MainPage.h"

#include <winrt/Windows.UI.Popups.h>

#include "winrt/Windows.System.h"
#include "winrt/Windows.UI.Xaml.Controls.h"
#include "winrt/Windows.UI.Xaml.Input.h"
#include "winrt/Windows.UI.Xaml.Navigation.h"
#include <sstream>

using namespace winrt;
using namespace Windows::Foundation;
using namespace Windows::UI::Xaml;
...
void MainPage::CancelCommandButton_Click(IInspectable const&, RoutedEventArgs const&)
{
    // Create the message dialog and set its content
    Windows::UI::Popups::MessageDialog msg{ L"No internet connection has been found." };

    // Add commands and set their callbacks.
    // Both commands use the same callback function instead of inline event handlers.
    Windows::UI::Popups::UICommand continueCommand{
        L"Try again",
        { this, &MainPage::CommandInvokedHandler} };
    Windows::UI::Popups::UICommand upgradeCommand{
        L"Close",
        { this, &MainPage::CommandInvokedHandler } };

    // Add the commands to the dialog.
    msg.Commands().Append(continueCommand);
    msg.Commands().Append(upgradeCommand);

    // Set the command that will be invoked by default.
    msg.DefaultCommandIndex(0);

    // Set the command to be invoked when escape is pressed.
    msg.CancelCommandIndex(1);

    // Show the message dialog.
    msg.ShowAsync();
}

void MainPage::CommandInvokedHandler(Windows::UI::Popups::IUICommand const& command)
{
    // Display message.
    std::wstringstream stringstream;
    stringstream << L"The '" << command.Label().c_str() << L"' command has been selected.";
    rootPage.NotifyUser(stringstream.str().c_str(), NotifyType::StatusMessage);
}
#include "pch.h"
#include "CancelCommand.xaml.h"

using namespace MessageDialogSample;

using namespace Windows::UI::Popups;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;

void MessageDialogSample::CancelCommand::CancelCommandButton_Click(Platform::Object^ sender,
    Windows::UI::Xaml::RoutedEventArgs^ e)
{
    // Create the message dialog and set its content
    MessageDialog^ msg = ref new MessageDialog("No internet connection has been found.");

    // Add commands and set their callbacks.
    // Both commands use the same callback function instead of inline event handlers.
    UICommand^ continueCommand = ref new UICommand(
        "Try again", 
        ref new UICommandInvokedHandler(this, &CancelCommand::CommandInvokedHandler));
    UICommand^ upgradeCommand = ref new UICommand(
        "Close", 
        ref new UICommandInvokedHandler(this, &CancelCommand::CommandInvokedHandler));

    // Add the commands to the dialog
    msg->Commands->Append(continueCommand);
    msg->Commands->Append(upgradeCommand);

    // Set the command that will be invoked by default
    msg->DefaultCommandIndex = 0;

    // Set the command to be invoked when escape is pressed
    msg->CancelCommandIndex = 1;

    // Show the message dialog
    msg->ShowAsync();
}

void CancelCommand::CommandInvokedHandler(Windows::UI::Popups::IUICommand^ command)
{
    // Display message
    rootPage->NotifyUser("The '" + command->Label + "' command has been selected.", 
        NotifyType::StatusMessage);
}
Imports Windows.UI.Popups
Imports Windows.UI.Xaml
Imports Windows.UI.Xaml.Controls
Imports Windows.UI.Xaml.Navigation
Imports SDKTemplate

Partial Public NotInheritable Class CloseCommand
    Inherits SDKTemplate.Common.LayoutAwarePage

    ' A pointer back to the main page.  This is needed if you want to call methods in MainPage such
    ' as NotifyUser()
    Private rootPage As MainPage = MainPage.Current

    Public Sub New()
        Me.InitializeComponent()
    End Sub

    Private Async Sub CloseCommandLaunch_Click(sender As Object, e As RoutedEventArgs)
        ' Create the message dialog and set its content and title
        Dim messageDialog = New MessageDialog("No internet connection has been found.")

        ' Add buttons and set their callbacks
        messageDialog.Commands.Add(New UICommand("Try again", Sub(command)
            rootPage.NotifyUser("The '" & command.Label & "' button has been selected.", _ 
                NotifyType.StatusMessage)
                                                              End Sub))

        messageDialog.Commands.Add(New UICommand("Close", Sub(command) 
            rootPage.NotifyUser("The '" & command.Label & "' button has been selected.", _
                NotifyType.StatusMessage)
                                                          End Sub))

        ' Set the command that will be invoked by default
        messageDialog.DefaultCommandIndex = 0

        ' Set the command to be invoked when escape is pressed
        messageDialog.CancelCommandIndex = 1

        ' Show the message dialog
        Await messageDialog.ShowAsync
    End Sub
End Class

Remarques

Notes

Cette classe n’est pas agile, ce qui signifie que vous devez prendre en compte son modèle de thread et son comportement de marshaling. Pour plus d’informations, consultez Threading and Marshaling (C++/CX) et Utilisation d’objets Windows Runtime dans un environnement multithread (.NET).

La boîte de dialogue comporte une barre de commandes qui peut prendre en charge jusqu’à trois commandes dans les applications de bureau, ou deux commandes dans les applications mobiles. Si vous ne spécifiez aucune commande, une commande par défaut est ajoutée pour fermer la boîte de dialogue. La boîte de dialogue assoit l’écran derrière et empêche les événements tactiles de passer au canevas de l’application jusqu’à ce que l’utilisateur réponde.

Les boîtes de dialogue de message doivent être utilisées avec parcimonie et uniquement pour les messages critiques ou les questions simples qui doivent bloquer le flux de l’utilisateur. Voici un exemple de boîte de dialogue créée par le code dans la section Exemples .

Boîte de dialogue de message avec deux commandes

Constructeurs

MessageDialog(String)

Initialise une nouvelle instance de la classe MessageDialog pour afficher une boîte de dialogue de message sans titre qui peut être utilisée pour poser des questions simples à votre utilisateur.

Dans une application de bureau, avant d’utiliser une instance de cette classe d’une manière qui affiche l’interface utilisateur, vous devez associer l’objet au handle de fenêtre de son propriétaire. Pour plus d’informations et des exemples de code, consultez Afficher des objets d’interface utilisateur WinRT qui dépendent de CoreWindow.

La boîte de dialogue estomper l’écran derrière elle et empêche les événements tactiles de passer au canevas de l’application jusqu’à ce que l’utilisateur réponde.

Les boîtes de dialogue de message doivent être utilisées avec parcimonie et uniquement pour les messages critiques ou les questions simples qui doivent bloquer le flux de l’utilisateur.

MessageDialog(String, String)

Initialise une nouvelle instance de la classe MessageDialog pour afficher une boîte de dialogue de message intitulé qui peut être utilisée pour poser des questions simples à votre utilisateur.

Dans une application de bureau, avant d’utiliser une instance de cette classe d’une manière qui affiche l’interface utilisateur, vous devez associer l’objet au handle de fenêtre de son propriétaire. Pour plus d’informations et des exemples de code, consultez Afficher des objets d’interface utilisateur WinRT qui dépendent de CoreWindow.

Propriétés

CancelCommandIndex

Obtient ou définit l’index de la commande que vous souhaitez utiliser comme commande cancel. Il s’agit de la commande qui se déclenche lorsque les utilisateurs appuient sur la touche Échap.

Ajoutez les commandes avant de définir l’index.

Commands

Obtient un tableau de commandes qui s’affichent dans la barre de commandes de la boîte de dialogue de message. Ces commandes rendent le dialogue actionnable.

Obtenez ce tableau et ajoutez des objets UICommand qui représentent vos commandes. Si la boîte de dialogue s’affiche actuellement, les commandes ne sont pas ajoutées à la barre de commandes.

Content

Obtient ou définit le message à afficher pour l’utilisateur.

DefaultCommandIndex

Obtient ou définit l’index de la commande que vous souhaitez utiliser comme valeur par défaut. Il s’agit de la commande qui se déclenche par défaut lorsque les utilisateurs appuient sur la touche ENTRÉE.

Ajoutez les commandes avant de définir l’index.

Options

Obtient ou définit les options d’un MessageDialog.

Title

Obtient ou définit le titre à afficher dans la boîte de dialogue, le cas échéant.

Méthodes

ShowAsync()

Commence une opération asynchrone montrant une boîte de dialogue.

S’applique à

Voir aussi