在WPF中模拟ShowDialog

时间:2018-07-20 03:36:58

标签: c# wpf modal-dialog

我正在使用WPF中的对话框。我想实现一个DialogCenter,它负责更改活动窗口并显示我的自定义对话框。

这是我的DialogCenter:

 internal static class DialogCenter<T> where T : IDialog
 {
     public enum DialogResult{
         OK, Cancel
     }
     public static DialogResult ShowDialog<T>()
     {
         ...
     }
 }

和:

 interface IDialog
 {
     UserControl GetControl();
     ....
 }

ShowDialog将获得一个UserControl,然后将其放置在正确的位置。

将响应发送回调用窗口的唯一方法是实现一个事件,然后在UserControl中完成我的工作后再调用该事件(我知道的唯一方法)。

因此,每当我想调用DialogWindow时,我都必须做这样的工作:

var A = DialogCenter<SomeDialog>.ShowDialog();
A.OnDialogComplete+= AnEventHandler();

这将改变我的执行流程,我必须照顾好它。执行流程会更加复杂。

在WindowsForm中,我们有ShowDialog方法,该方法将阻止当前线程,直到返回DialogResult。

如何实现这种方法?

0 个答案:

没有答案