XAML: cuadro de diálogo

Todas las aplicaciones independientes tienen una ventana principal que expone algunas funciones y muestra algunos datos sobre los que opera la aplicación a través de su GUI. Una aplicación también puede mostrar ventanas adicionales para hacer lo siguiente:

  • Mostrar información específica a los usuarios.
  • Recopilar información útil de los usuarios.
  • Para mostrar y recopilar información importante.

Ejemplo

Echemos un vistazo al siguiente ejemplo. En la ventana principal, hay un botón y un cuadro de texto. Cuando el usuario hace clic en este botón, abre otro cuadro de diálogo con los botones Sí, No y Cancelar y muestra un mensaje que le pide al usuario que haga clic en un botón.

Cuando el usuario hace clic en un botón, el cuadro de diálogo actual se cierra y muestra un cuadro de texto con la información "en qué botón se hizo clic".

Aquí está el código XAML para crear e inicializar un botón y un cuadro de texto con algunas propiedades:

<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 continuación se muestra el código C # para implementar un evento de clic de botón.

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; 
         }
      }
   }
}

Cuando compile y ejecute el código anterior, producirá el siguiente resultado:

Cuando hace clic en el botón, se muestra otro cuadro de diálogo, como se muestra a continuación, que solicita al usuario que haga clic en un botón. Ahora, haga clic en el botón Sí.

Actualiza el cuadro de texto con el contenido del botón.