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.