WPF - Finestra di dialogo
Tutte le applicazioni autonome hanno una finestra principale che espone alcune funzionalità e visualizza alcuni dati su cui l'applicazione opera tramite una GUI. Un'applicazione può anche visualizzare finestre aggiuntive per eseguire le seguenti operazioni:
- Mostra alcune informazioni specifiche agli utenti
- Raccogli informazioni utili dagli utenti
- Entrambi visualizzano e raccolgono informazioni importanti
Esempio
Facciamo un esempio per comprendere il concetto di Dialog Box. Prima di tutto, crea un nuovo progetto WPF con il nomeWPFDialog.
Trascina un pulsante e una casella di testo dalla casella degli strumenti.
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 "fare clic su qualsiasi pulsante" su di esso.
Quando un utente fa clic su uno di essi, questa finestra di dialogo viene chiusa e mostra una casella di testo con le informazioni del pulsante su cui è stato fatto clic.
Ecco il codice XAML per inizializzare un pulsante e una casella di testo con alcune proprietà.
<Window x:Class = "WPFDialog.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" lick = "ShowMessageBox_Click">
Show Message Box
</Button>
<TextBox Height = "23" HorizontalAlignment = "Left" Margin = "181,167,0,0"
Name = "textBox1" VerticalAlignment = "Top" Width = "120" />
</Grid>
</Window>
Ecco il file C# code in cui viene implementato l'evento clic del pulsante.
using System;
using System.Windows;
using System.Windows.Controls;
namespace WPFDialog {
/// <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, verrà prodotta la seguente finestra.

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.

Nel caso in cui l'utente faccia clic sul pulsante Sì, aggiorna la casella di testo con il contenuto del pulsante.
