XAML - caixa de diálogo
Todos os aplicativos independentes possuem uma janela principal que expõe algumas funcionalidades e exibe alguns dados sobre os quais o aplicativo opera por meio de sua GUI. Um aplicativo também pode exibir janelas adicionais para fazer o seguinte -
- Para exibir algumas informações específicas aos usuários.
- Para coletar informações úteis dos usuários.
- Para exibir e coletar informações importantes.
Exemplo
Vamos dar uma olhada no exemplo a seguir. Na janela principal, há um botão e uma caixa de texto. Quando o usuário clica nesse botão, ele abre outra caixa de diálogo com os botões Sim, Não e Cancelar e exibe uma mensagem que solicita que o usuário clique em um botão.
Quando o usuário clica em um botão, a caixa de diálogo atual é fechada e mostra uma caixa de texto com a informação "qual botão foi clicado".
Aqui está o código XAML para criar e inicializar um botão e uma caixa de texto com algumas propriedades -
<Window x:Class = "XAMLDialog.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<Button Height = "23"
Margin = "100"
Name = "ShowMessageBox"
VerticalAlignment = "Top"
Click = "ShowMessageBox_Click">Show Message Box</Button>
<TextBox Height = "23"
HorizontalAlignment = "Left"
Margin = "181,167,0,0"
Name = "textBox1"
VerticalAlignment = "Top"
Width = "120" />
</Grid>
</Window>
A seguir está o código C # para implementar um evento de clique de botão.
using System;
using System.Windows;
using System.Windows.Controls;
namespace XAMLDialog {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void ShowMessageBox_Click(object sender, RoutedEventArgs e) {
string msgtext = "Click any button";
string txt = "My Title";
MessageBoxButton button = MessageBoxButton.YesNoCancel;
MessageBoxResult result = MessageBox.Show(msgtext, txt, button);
switch (result) {
case MessageBoxResult.Yes:
textBox1.Text = "Yes";
break;
case MessageBoxResult.No:
textBox1.Text = "No";
break;
case MessageBoxResult.Cancel:
textBox1.Text = "Cancel";
break;
}
}
}
}
Quando você compila e executa o código acima, ele produzirá a seguinte saída -
Quando você clica no botão, outra caixa de diálogo é exibida, conforme mostrado abaixo, que solicita que o usuário clique em um botão. Agora, clique no botão Sim.
Ele atualiza a caixa de texto com o conteúdo do botão.