MessageDialog Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili dialog untuk menampilkan pesan kepada pengguna.
Di aplikasi desktop, sebelum menggunakan instans kelas ini dengan cara yang menampilkan UI, Anda harus mengaitkan objek dengan handel jendela pemiliknya. Untuk informasi selengkapnya, dan contoh kode, lihat Menampilkan objek UI WinRT yang bergantung pada CoreWindow.
Penting
Anda harus menggunakan MessageDialog hanya saat memutakhirkan aplikasi Universal Windows 8.x yang menggunakan MessageDialog, dan perlu meminimalkan perubahan atau jika aplikasi Anda bukan XAML. Untuk aplikasi XAML baru di Windows 10+, sebaiknya gunakan kontrol ContentDialog sebagai gantinya.
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
- Warisan
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Contoh
Contoh berikut menunjukkan cara menambahkan perintah ke dialog pesan dan menampilkannya. Untuk contoh kode lengkap, lihat Sampel dialog pesan.
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
Keterangan
Catatan
Kelas ini tidak lincah, yang berarti Anda perlu mempertimbangkan model utas dan perilaku marshalingnya. Untuk informasi selengkapnya, lihat Threading dan Marshaling (C++/CX) dan Menggunakan objek Windows Runtime di lingkungan multithreaded (.NET).
Dialog memiliki bilah perintah yang dapat mendukung hingga tiga perintah di aplikasi desktop, atau dua perintah di aplikasi seluler. Jika Anda tidak menentukan perintah apa pun, maka perintah default ditambahkan untuk menutup dialog. Dialog meringkas layar di belakangnya, dan memblokir peristiwa sentuh agar tidak diteruskan ke kanvas aplikasi hingga pengguna merespons.
Dialog pesan harus digunakan dengan hemat, dan hanya untuk pesan penting atau pertanyaan sederhana yang harus memblokir alur pengguna. Berikut adalah contoh dialog yang dibuat oleh kode di bagian Contoh .
Konstruktor
MessageDialog(String) |
Menginisialisasi instans baru kelas MessageDialog untuk menampilkan dialog pesan tanpa judul yang dapat digunakan untuk mengajukan pertanyaan sederhana kepada pengguna Anda. Di aplikasi desktop, sebelum menggunakan instans kelas ini dengan cara yang menampilkan UI, Anda harus mengaitkan objek dengan handel jendela pemiliknya. Untuk informasi selengkapnya, dan contoh kode, lihat Menampilkan objek UI WinRT yang bergantung pada CoreWindow. Dialog meringkas layar di belakangnya dan memblokir peristiwa sentuhan agar tidak diteruskan ke kanvas aplikasi hingga pengguna merespons. Dialog pesan harus digunakan dengan hemat, dan hanya untuk pesan penting atau pertanyaan sederhana yang harus memblokir alur pengguna. |
MessageDialog(String, String) |
Menginisialisasi instans baru kelas MessageDialog untuk menampilkan dialog pesan berjudul yang dapat digunakan untuk mengajukan pertanyaan sederhana kepada pengguna Anda. Di aplikasi desktop, sebelum menggunakan instans kelas ini dengan cara yang menampilkan UI, Anda harus mengaitkan objek dengan handel jendela pemiliknya. Untuk informasi selengkapnya, dan contoh kode, lihat Menampilkan objek UI WinRT yang bergantung pada CoreWindow. |
Properti
CancelCommandIndex |
Mendapatkan atau mengatur indeks perintah yang ingin Anda gunakan sebagai perintah batalkan. Ini adalah perintah yang diaktifkan saat pengguna menekan tombol ESC. Tambahkan perintah sebelum Anda mengatur indeks. |
Commands |
Mendapatkan array perintah yang muncul di bilah perintah dialog pesan. Perintah ini membuat dialog dapat ditindakkan. Dapatkan array ini dan tambahkan objek UICommand yang mewakili perintah Anda ke dalamnya. Jika dialog saat ini ditampilkan, perintah tidak ditambahkan ke bilah perintah. |
Content |
Mendapatkan atau mengatur pesan yang akan ditampilkan kepada pengguna. |
DefaultCommandIndex |
Mendapatkan atau mengatur indeks perintah yang ingin Anda gunakan sebagai default. Ini adalah perintah yang diaktifkan secara default saat pengguna menekan tombol ENTER. Tambahkan perintah sebelum Anda mengatur indeks. |
Options |
Mendapatkan atau mengatur opsi untuk MessageDialog. |
Title |
Mendapatkan atau mengatur judul untuk ditampilkan pada dialog, jika ada. |
Metode
ShowAsync() |
Memulai operasi asinkron yang menunjukkan dialog. |