簡體   English   中英

在Windows應用商店中從app.xaml.cs顯示MessageDialog

[英]Show MessageDialog from app.xaml.cs in Windows Store app

我試圖在失去互聯網連接時向用戶顯示消息

我在App.xaml.cs上有此方法

static async void NetworkInformation_NetworkStatusChanged(object sender)
    {

        //Get the Internet connection profile
        //ConnectionProfile connectionProfileInfo = null;
        try
        {
            ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();

            if (InternetConnectionProfile == null)
            {
                ApplicationData.Current.LocalSettings.Values["INTERNET"] = false;

                ShowBox("Internet Lost");

                Frame rootFrame = Window.Current.Content as Frame;
                rootFrame.Navigate(typeof(LoginPage));
            }
            else
            {
                ApplicationData.Current.LocalSettings.Values["INTERNET"] = true;
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine("Unexpected exception occurred: " + ex.ToString());
        }

    }

還有另外一個

public async static void ShowBox(string msg)
    {
        try
        {

            await new MessageDialog(msg, "No Internet").ShowAsync();
        }
        catch (Exception e)
        {
            Debug.WriteLine(e.Message);
        }
    }

當我導致連接丟失(禁用我的互聯網連接)時,將調用ShowBox方法,並且我在其上收到此異常:

無效的窗口句柄。

必須從具有CoreWindow的線程中調用此API,或者必須已顯式設置了窗口。

有什么辦法可以顯示該事件的MessageDialog嗎?

在此處輸入圖片說明 嘗試添加以下內容:

CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    MessageDialog msg= new MessageDialog("No Internet");
    msg.ShowAsync();
 });

Manuel Patrone的答案幾乎是正確的。 只是他的答案的小修正。

await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
async() =>
{
    MessageDialog msg= new MessageDialog("No Internet");
    await msg.ShowAsync();
 });

如果您正在運行Desktop Bridge,請確保正確初始化商店上下文。 有關更多信息,請參閱將StoreContext類與Desktop Bridge一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM