/// <summary> /// 弹出窗口 /// </summary> /// <typeparam name="TViewModel">传入的viewmodel</typeparam> /// <param name="owner">窗口的owner</param> /// <param name="title">窗口的title</param> /// <param name="view">窗口的内容</param> /// <param name="viewmodel">窗口的内容的viewmodel</param> /// <param name="onDialogCloseCallBack">窗口关闭后的回掉事件</param> /// <param name="option">窗口的一些属性设置(主要是动画)</param> /// <param name="winLoadAction">窗口加载完页面后执行的操作</param> public static void ShowDialog <TViewModel>(Window owner, string title, UserControl view, TViewModel viewmodel, Action <TViewModel> onDialogCloseCallBack, MyLayerOptions option, Action winLoadAction) { view.DataContext = viewmodel; MyLayer messageBox = new MyLayer(owner, view, title, option, true, winLoadAction); if (onDialogCloseCallBack != null) { messageBox.Closed += (sender, e) => onDialogCloseCallBack(viewmodel); } messageBox.ShowDialog(); }
/// <summary> /// 弹出窗口 /// </summary> /// <typeparam name="TViewModel">传入的viewmodel</typeparam> /// <param name="owner">owner</param> /// <param name="title">窗口的title</param> /// <param name="view">窗口的内容</param> /// <param name="viewmodel">窗口的内容的viewmodel</param> /// <param name="onDialogCloseCallBack">窗口关闭后的回掉事件</param> /// <param name="option">窗口的一些属性设置(主要是动画)</param> /// <param name="winLoadAction">窗口加载完页面后执行的操作</param> /// <param name="request">InteractionRequest类,调用者可执行Requested,即可关闭弹出的窗口</param> public static void ShowDialog <TViewModel>(Window owner, string title, System.Windows.Controls.UserControl view, TViewModel viewmodel, Action <TViewModel> onDialogCloseCallBack, MyLayerOptions option, Action winLoadAction, InteractionRequest request) { view.DataContext = viewmodel; MyLayer messageBox = new MyLayer(owner, view, title, option, true, winLoadAction); if (onDialogCloseCallBack != null) { messageBox.Closed += (sender, e) => onDialogCloseCallBack(viewmodel); } if (request != null) { CallParameterizedMethodAction action = new CallParameterizedMethodAction(); action.MethodName = "Close"; action.TargetObject = messageBox; InteractionRequestTrigger trigger = new InteractionRequestTrigger(); trigger.Actions.Add(action); trigger.SourceObject = request; Interaction.GetTriggers(messageBox).Add(trigger); } messageBox.Show(); }
public static void ShowDialog(Window owner, object content, string title, MyLayerOptions options) { var messageBox = new MyLayer(owner, content, title, options, true); messageBox.Show(); }