在我的弹出窗口(包含游戏选项控制)我有“复位榜”按钮。 按钮火MessageDialog有一个TextBlock“你确定?”和两个按钮“是”和“否”。 然而,MessageDialog打开时,弹出窗口关闭。 你知道如何使弹出还活着吗?
Answer 1:
我可以使用来解决这个Action
委托作为当回调MessageDialog
关闭。
关键是要调用后行动await
上MessageDialog
的ShowAsync
在async
功能。
另一个关键是要关闭和打开弹出来获得IsLightDismissEnabled
实际占据上风。
XAML:
<Popup
IsLightDismissEnabled="{Binding IsLightDismiss, Mode=TwoWay}"
IsOpen="{Binding IsPopupOpen, Mode=TwoWay}">
视图模型:
private bool isPopupOpen;
public bool IsPopupOpen
{
get { return this.isPopupOpen; }
set { this.SetProperty(ref this.isPopupOpen, value); }
}
private bool isLightDismiss;
public bool IsLightDismiss
{
get { return this.isLightDismiss; }
set { this.SetProperty(ref this.isLightDismiss, value); }
}
protected void ShowDialog()
{
this.IsLightDismiss = false;
this.IsPopupOpen = false;
this.IsPopupOpen = true;
Action showPopup = () => {
this.IsLightDismiss = true;
this.IsPopupOpen = false;
this.IsPopupOpen = true;
};
ShowMessageDialog("message", "title", showPopup);
}
private async void ShowMessageDialog(string message, string title, Action callback)
{
var _messageDialog = new MessageDialog(message, title);
await _messageDialog.ShowAsync();
callback();
}
Answer 2:
您设置Popup
的IsLightDismissEnabled
属性为false
来实现这一目标。
popup.IsLightDismissEnabled = false;
文章来源: MessageDialog closes Popup