Compartilhar via


MessageDialog Classe

Definição

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
Object Platform::Object IInspectable MessageDialog
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 .

Caixa de diálogo mensagem com dois comandos

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.

Aplica-se a

Confira também