MessageDialog Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 .
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. |