Windows 8 MessageDialog关闭弹出窗口
在我的弹出窗口(包含游戏选项控件)中,我有“重置高分”按钮。按钮触发带有文本块“您确定…”和两个按钮“是”和“否”的消息对话框。但是,当MessageDialog打开时,弹出窗口关闭。您知道如何使弹出窗口保持活动状态吗?将您的Windows 8 MessageDialog关闭弹出窗口,windows-8,popup,microsoft-metro,windows-store-apps,messagedialog,Windows 8,Popup,Microsoft Metro,Windows Store Apps,Messagedialog,在我的弹出窗口(包含游戏选项控件)中,我有“重置高分”按钮。按钮触发带有文本块“您确定…”和两个按钮“是”和“否”的消息对话框。但是,当MessageDialog打开时,弹出窗口关闭。您知道如何使弹出窗口保持活动状态吗?将您的弹出窗口的IsLightDismissEnabled属性设置为false,以实现此目的 popup.IsLightDismissEnabled = false; 将弹出窗口的IsLightDismissEnabled属性设置为false,以实现此目的 popup.IsLi
弹出窗口的IsLightDismissEnabled
属性设置为false
,以实现此目的
popup.IsLightDismissEnabled = false;
将弹出窗口的IsLightDismissEnabled
属性设置为false
,以实现此目的
popup.IsLightDismissEnabled = false;
当MessageDialog
关闭时,我可以使用Action
委托作为回调来解决这个问题
关键是在async
函数中MessageDialog
的ShowAsync
上的wait
之后调用操作
另一个关键是关闭并打开弹出窗口,以使IsLightDismissEnabled
实际生效
XAML:
视图模型:
private bool isPopupOpen;
公共场所
{
获取{返回this.isPopupOpen;}
set{this.SetProperty(ref this.isPopupOpen,value);}
}
私人布尔岛;
公共布尔岛
{
获取{返回this.islightdisclose;}
设置{this.SetProperty(ref this.islightdismission,value);}
}
受保护的void ShowDialog()
{
this.islightdisclose=false;
this.IsPopupOpen=false;
this.IsPopupOpen=true;
动作showPopup=()=>{
this.islightdisclose=true;
this.IsPopupOpen=false;
this.IsPopupOpen=true;
};
ShowMessageDialog(“消息”、“标题”、showPopup);
}
private async void ShowMessageDialog(字符串消息、字符串标题、操作回调)
{
var\u messageDialog=新建messageDialog(消息,标题);
wait_messageDialog.ShowAsync();
回调();
}
当消息对话框
关闭时,我可以使用操作
委托作为回调来解决这个问题
关键是在async
函数中MessageDialog
的ShowAsync
上的wait
之后调用操作
另一个关键是关闭并打开弹出窗口,以使IsLightDismissEnabled
实际生效
XAML:
视图模型:
private bool isPopupOpen;
公共场所
{
获取{返回this.isPopupOpen;}
set{this.SetProperty(ref this.isPopupOpen,value);}
}
私人布尔岛;
公共布尔岛
{
获取{返回this.islightdisclose;}
设置{this.SetProperty(ref this.islightdismission,value);}
}
受保护的void ShowDialog()
{
this.islightdisclose=false;
this.IsPopupOpen=false;
this.IsPopupOpen=true;
动作showPopup=()=>{
this.islightdisclose=true;
this.IsPopupOpen=false;
this.IsPopupOpen=true;
};
ShowMessageDialog(“消息”、“标题”、showPopup);
}
private async void ShowMessageDialog(字符串消息、字符串标题、操作回调)
{
var\u messageDialog=新建messageDialog(消息,标题);
wait_messageDialog.ShowAsync();
回调();
}
您应该添加popup.LostFocus
事件处理程序,然后在事件处理程序中确保它保持打开。您应该添加popup.LostFocus
事件处理程序,然后在事件处理程序中确保它保持打开