Это должно быть то, что вы хотите:
var window = new MyWindow();
var helper = new WindowInteropHelper(window);
helper.Owner = this.Handle;
window.ShowDialog();
Это ключ к обеспечению правильного поведения при минимизации / восстановлении. См. этот блог для получения дополнительной информации о методе.
(Если это не совсем то, что вам нужно, возможно, вы могли бы определить «действительно модальный».)