在WP 8.1 RT中以编程方式关闭MessageDialog

时间:2015-09-28 10:13:03

标签: c# windows-runtime windows-phone-8.1

我想在Windows Phone 8.1 RT中关闭并隐藏MessageDialog。我通过调用.Cancel().Close()看到了多个解决方案,但是在Windows Phone 8.1 RT上都没有。它们仅对Windows 8 RT有效。

如何在不与代码交互的情况下从代码中关闭MessageDialog

1 个答案:

答案 0 :(得分:3)

使用ContentDialog代替MessageDialog。 ContentDialog有更多自定义选项。您可以创建看起来像MessageDialog而没有任何问题的ContentDialog,并将其隐藏在代码中。

样品:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    ShowContentDialog("cos");
    await HideContentDialog();
}

ContentDialog _contentDialog;
private void ShowContentDialog(string s)
{
        _contentDialog = new ContentDialog();
    _contentDialog.Content = s;
    _contentDialog.IsPrimaryButtonEnabled = true;
    _contentDialog.PrimaryButtonText = "OK";
    _contentDialog.Title = "title";
    _contentDialog.ShowAsync();
}

private async Task HideContentDialog()
{
    await Task.Delay(5000);
    _contentDialog.Hide();
}