MessageDialog Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una finestra di dialogo per la visualizzazione dei messaggi all'utente.
In un'app desktop, prima di usare un'istanza di questa classe in modo da visualizzare l'interfaccia utente, dovrai associare l'oggetto all'handle della finestra del proprietario. Per altre info ed esempi di codice, vedi Visualizzare gli oggetti dell'interfaccia utente WinRT che dipendono da CoreWindow.
Importante
Devi usare MessageDialog solo quando aggiorni un'app di Windows 8.x universale che usa MessageDialog e devi ridurre al minimo le modifiche o se l'app non è XAML. Per le nuove app XAML in Windows 10+, è consigliabile usare invece il controllo 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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Esempio
Nell'esempio seguente viene illustrato come aggiungere comandi a una finestra di dialogo di messaggio e visualizzarla. Per l'esempio di codice completo, vedere Esempio di finestra di dialogo messaggio.
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
Commenti
Nota
Questa classe non è agile, il che significa che è necessario considerare il modello di threading e il comportamento di marshalling. Per altre informazioni, vedere Threading e marshalling (C++/CX) e Uso di oggetti Windows Runtime in un ambiente multithreading (.NET).
La finestra di dialogo include una barra dei comandi che può supportare fino a tre comandi nelle app desktop o due comandi nelle app per dispositivi mobili. Se non si specificano comandi, viene aggiunto un comando predefinito per chiudere la finestra di dialogo. La finestra di dialogo riduce lo schermo sottostante e blocca il passaggio degli eventi di tocco all'area di disegno dell'app fino a quando l'utente non risponde.
Le finestre di dialogo dei messaggi devono essere usate con moderazione e solo per messaggi critici o domande semplici che devono bloccare il flusso dell'utente. Ecco un esempio di finestra di dialogo creata dal codice nella sezione Esempi .
Costruttori
MessageDialog(String) |
Inizializza una nuova istanza della classe MessageDialog per visualizzare una finestra di dialogo di messaggio senza titolo che può essere usata per porre domande semplici all'utente. In un'app desktop, prima di usare un'istanza di questa classe in modo da visualizzare l'interfaccia utente, dovrai associare l'oggetto all'handle della finestra del proprietario. Per altre info ed esempi di codice, vedi Visualizzare gli oggetti dell'interfaccia utente WinRT che dipendono da CoreWindow. La finestra di dialogo riduce lo schermo sottostante e blocca il passaggio degli eventi di tocco all'area di disegno dell'app fino a quando l'utente non risponde. Le finestre di dialogo dei messaggi devono essere usate con moderazione e solo per messaggi critici o domande semplici che devono bloccare il flusso dell'utente. |
MessageDialog(String, String) |
Inizializza una nuova istanza della classe MessageDialog per visualizzare una finestra di dialogo di messaggio intitolata che può essere usata per porre domande semplici all'utente. In un'app desktop, prima di usare un'istanza di questa classe in modo da visualizzare l'interfaccia utente, dovrai associare l'oggetto all'handle della finestra del proprietario. Per altre info ed esempi di codice, vedi Visualizzare gli oggetti dell'interfaccia utente WinRT che dipendono da CoreWindow. |
Proprietà
CancelCommandIndex |
Ottiene o imposta l'indice del comando che si desidera utilizzare come comando cancel. Questo è il comando che viene attivato quando gli utenti premeno il tasto ESC. Aggiungere i comandi prima di impostare l'indice. |
Commands |
Ottiene una matrice di comandi visualizzati nella barra dei comandi della finestra di dialogo del messaggio. Questi comandi rendono il dialogo utilizzabile. Ottenere questa matrice e aggiungere oggetti UICommand che rappresentano i comandi. Se la finestra di dialogo è attualmente visualizzata, i comandi non vengono aggiunti alla barra dei comandi. |
Content |
Ottiene o imposta il messaggio da visualizzare all'utente. |
DefaultCommandIndex |
Ottiene o imposta l'indice del comando che si desidera utilizzare come impostazione predefinita. Questo è il comando che viene attivato per impostazione predefinita quando gli utenti premono INVIO. Aggiungere i comandi prima di impostare l'indice. |
Options |
Ottiene o imposta le opzioni per messageDialog. |
Title |
Ottiene o imposta il titolo da visualizzare nella finestra di dialogo, se presente. |
Metodi
ShowAsync() |
Avvia un'operazione asincrona che mostra una finestra di dialogo. |