MessageDialog Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma caixa de diálogo para mostrar mensagens ao usuário.
Em um aplicativo da área de trabalho, antes de usar uma instância dessa classe de uma maneira que exiba a interface do usuário, você precisará associar o objeto ao identificador de janela do proprietário. Para obter mais informações e exemplos de código, consulte Exibir objetos de interface do usuário do WinRT que dependem do CoreWindow.
Importante
Você deve usar MessageDialog somente quando estiver atualizando um aplicativo Universal do Windows 8.x que usa MessageDialog e precisar minimizar as alterações ou se o aplicativo não for XAML. Para novos aplicativos XAML no Windows 10+, recomendamos usar o controle ContentDialog .
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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
O exemplo a seguir mostra como adicionar comandos a uma caixa de diálogo de mensagem e exibi-la. Para obter o exemplo de código completo, consulte Exemplo de caixa de diálogo de mensagem.
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
Comentários
Observação
Essa classe não é ágil, o que significa que você precisa considerar seu modelo de threading e o comportamento de marshaling. Para obter mais informações, consulte Threading and Marshaling (C++/CX) e Using Windows Runtime objects in a multithreaded environment (.NET).
A caixa de diálogo tem uma barra de comandos que pode dar suporte a até três comandos em aplicativos da área de trabalho ou dois comandos em aplicativos móveis. Se você não especificar nenhum comando, um comando padrão será adicionado para fechar a caixa de diálogo. A caixa de diálogo escurece a tela atrás dela e impede que eventos de toque passem para a tela do aplicativo até que o usuário responda.
As caixas de diálogo de mensagem devem ser usadas com moderação e somente para mensagens críticas ou perguntas simples que devem bloquear o fluxo do usuário. Aqui está um exemplo de uma caixa de diálogo criada pelo código na seção Exemplos .
Construtores
MessageDialog(String) |
Inicializa uma nova instância da classe MessageDialog para exibir uma caixa de diálogo de mensagem sem título que pode ser usada para fazer perguntas simples ao usuário. Em um aplicativo da área de trabalho, antes de usar uma instância dessa classe de uma maneira que exiba a interface do usuário, você precisará associar o objeto ao identificador de janela do proprietário. Para obter mais informações e exemplos de código, consulte Exibir objetos de interface do usuário do WinRT que dependem do CoreWindow. A caixa de diálogo escurece a tela atrás dela e impede que eventos de toque passem para a tela do aplicativo até que o usuário responda. As caixas de diálogo de mensagem devem ser usadas com moderação e somente para mensagens críticas ou perguntas simples que devem bloquear o fluxo do usuário. |
MessageDialog(String, String) |
Inicializa uma nova instância da classe MessageDialog para exibir uma caixa de diálogo de mensagem intitulada que pode ser usada para fazer perguntas simples ao usuário. Em um aplicativo da área de trabalho, antes de usar uma instância dessa classe de uma maneira que exiba a interface do usuário, você precisará associar o objeto ao identificador de janela do proprietário. Para obter mais informações e exemplos de código, consulte Exibir objetos de interface do usuário do WinRT que dependem do CoreWindow. |
Propriedades
CancelCommandIndex |
Obtém ou define o índice do comando que você deseja usar como o comando cancel. Esse é o comando que é acionado quando os usuários pressionam a tecla ESC. Adicione os comandos antes de definir o índice. |
Commands |
Obtém uma matriz de comandos que aparecem na barra de comandos da caixa de diálogo de mensagem. Esses comandos tornam a caixa de diálogo acionável. Obtenha essa matriz e adicione objetos UICommand que representam seus comandos a ela. Se a caixa de diálogo estiver sendo exibida no momento, os comandos não serão adicionados à barra de comandos. |
Content |
Obtém ou define a mensagem a ser exibida para o usuário. |
DefaultCommandIndex |
Obtém ou define o índice do comando que você deseja usar como padrão. Esse é o comando que é acionado por padrão quando os usuários pressionam a tecla ENTER. Adicione os comandos antes de definir o índice. |
Options |
Obtém ou define as opções de um MessageDialog. |
Title |
Obtém ou define o título a ser exibido na caixa de diálogo, se houver. |
Métodos
ShowAsync() |
Inicia uma operação assíncrona mostrando uma caixa de diálogo. |