我想知道是否有方法在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事件。 –