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.