XAML - Finestra di dialogo
Tutte le applicazioni autonome hanno una finestra principale che espone alcune funzionalità e visualizza alcuni dati su cui opera l'applicazione tramite la sua GUI. Un'applicazione può anche visualizzare finestre aggiuntive per eseguire le seguenti operazioni:
- Per visualizzare alcune informazioni specifiche agli utenti.
- Per raccogliere informazioni utili dagli utenti.
- Per visualizzare e raccogliere informazioni importanti.
Esempio
Diamo un'occhiata al seguente esempio. Nella finestra principale sono presenti un pulsante e una casella di testo. Quando l'utente fa clic su questo pulsante, apre un'altra finestra di dialogo con i pulsanti Sì, No e Annulla e visualizza un messaggio su di esso che richiede all'utente di fare clic su un pulsante.
Quando l'utente fa clic su un pulsante, la finestra di dialogo corrente viene chiusa e mostra una casella di testo con l'informazione "quale pulsante è stato cliccato".
Ecco il codice XAML per creare e inizializzare un pulsante e una casella di testo con alcune proprietà:
<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>
Di seguito è riportato il codice C # per implementare un evento clic del pulsante.
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 compili ed esegui il codice sopra, produrrà il seguente output:
Quando si fa clic sul pulsante, viene visualizzata un'altra finestra di dialogo come mostrato di seguito che richiede all'utente di fare clic su un pulsante. Ora fai clic sul pulsante Sì.
Aggiorna la casella di testo con il contenuto del pulsante.