我想知道是否有方法在WP8中顯示一個消息框,即在應用程序打開時。MessageBox顯示一次
我已經有以下代碼,非常基本。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
MessageBox.Show("Hi");
}
但是,這顯示每次打開應用程序。我只想讓它第一次顯示。
這可能嗎?
我想知道是否有方法在WP8中顯示一個消息框,即在應用程序打開時。MessageBox顯示一次
我已經有以下代碼,非常基本。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
MessageBox.Show("Hi");
}
但是,這顯示每次打開應用程序。我只想讓它第一次顯示。
這可能嗎?
我已經在WP 8.0 Silverlight應用程序中成功地使用了它。創建一個可重用的類,OneTimeDialog:
using System.Windows;
using System.IO.IsolatedStorage;
namespace MyApp
{
public static class OneTimeDialog
{
private static readonly IsolatedStorageSettings _settings = IsolatedStorageSettings.ApplicationSettings;
public static void Show(string uniqueKey, string title, string message)
{
if (_settings.Contains(uniqueKey)) return;
MessageBox.Show(message, title, MessageBoxButton.OK);
_settings.Add(uniqueKey, true);
_settings.Save();
}
}
}
然後在你的應用程序的任何地方使用它,像這樣:
OneTimeDialog.Show("WelcomeDialog", "Welcome", "Welcome to my app! You'll only see this once.")
顯示一個「提示」或「歡迎」對話框中只有一次是在許多不同的有所幫助類型的應用程序,所以我實際上在便攜式類庫中有上面的代碼,所以我可以從多個項目中引用它。
謝謝布拉德,工作過很愉快! –
有沒有方法來格式化文本框的文本佈局,即段落/項目符號點等? –
不像你現在這樣做,但看看這個nuget包中的CustomMessageBox類:https://www.nuget.org/packages/WPtoolkit。它提供了更多的選擇,如果它能支持這種行爲,我不會感到驚訝。 – Brad
由於您需要在會話中保持一個狀態,所以isolated storage鍵值對是個不錯的選擇。只需檢查,然後更新:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.ContainsKey("messageShown") && (bool)settings["messageShown"] == true)
{
MessageBox.Show("Hi");
settings["messageShown"] = true;
}
}
感謝您的幫助。但是,我試過這個代碼,ContainsKey返回以下錯誤:'System.IO.IsolatedStorage.IsolatedStorageSettings'不包含'ContainsKey'的定義,也沒有接受'System.IO.IsolatedStorage'類型的第一個參數的擴展方法'ContainsKey' .IsolatedStorageSettings'可以找到(你是否缺少使用指令或程序集引用?) –
我試圖使用'Contains',代碼運行但沒有顯示消息框。 –
如果有幫助,我使用的是Silverlight WP8.0應用程序。 –
如果你已經顯示了消息框,你可以記得在布爾中。或者使用將對象添加到可視化樹時發生的Loaded事件。 –