Ничего особенного вам не нужно делать, чтобы показать модальное диалоговое окно в WPF.Просто добавьте Window
в ваш проект (скажем, имя класса MyDialog
), а затем выполните:
var dialog = new MyDialog();
dialog.ShowDialog();
Window.ShowDialog
, чтобы окно отображалось вмодальная манера.
Пример:
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();
}
}
В вашем коде где-то:
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
}