Es gibt nichts Besonderes, was Sie tun müssen, um einen modalen Dialog in WPF anzuzeigen. Fügen Sie einfach einen Window
zu einem Projekt (sagen wir mal der Klassenname MyDialog
ist), und dann tun:
var dialog = new MyDialog();
dialog.ShowDialog();
Window.ShowDialog
kümmert sich das Fenster in einem modalen Art und Weise zu zeigen.
Beispiel:
public class MyDialog : Window {
public MyDialog() {
this.InitializeComponent();
this.DialogResult = null;
}
public string SomeData { get; set; } // bind this to a control in XAML
public int SomeOtherData { get; set; } // same for this
// Attach this to the click event of your "OK" button
private void OnOKButtonClicked(object sender, RoutedEventArgs e) {
this.DialogResult = true;
this.Close();
}
// Attach this to the click event of your "Cancel" button
private void OnCancelButtonClicked(object sender, RoutedEventArgs e) {
this.DialogResult = false;
this.Close();
}
}
In Ihrem Code irgendwo:
var dialog = new MyDialog();
// If MyDialog has properties that affect its behavior, set them here
var result = dialog.ShowDialog();
if (result == false) {
// cancelled
}
else if (result == true) {
// do something with dialog.SomeData here
}
Alle gut und gut, aber wie definieren Sie eine inputDialog, was erben Sie von und so? –
@Ingo: Sie erben von 'Window'. Es gibt nichts Besonderes. – Jon
Ich verstehe. Irgendein Tutorial, auf das Sie mich verweisen können, wie man das Bool in der ShowDialog Methode zurückgibt, und wie man auf die Eingabe und so zurückgreift? –