退出时在Silverlight应用中保留值

本文关键字:保留 应用 Silverlight 退出 | 更新日期: 2023-09-27 18:15:16

正如这个问题的标题所说,我试图在应用程序关闭时保留Timespan值。情况是这样的……我正在写一个Windows小工具,每次弹出窗口关闭时,它就会破坏它,Timespan值也会随之消失。我希望每次弹出窗口关闭时它都保留这个值这是如何实现的?

我当前所做的代码如下:

SilverlightGadgetUtilities.Stopwatch watch = new SilverlightGadgetUtilities.Stopwatch();
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        watch.currentTime();
        this.RootVisual = new Page();
    }
    private void Application_Exit(object sender, EventArgs e)
    {
        watch.currentTime();
    }

这是在Stopwatch类中

    public TimeSpan? currentTime()
    {
        current = Elapsed;
        return current;
    }
    public TimeSpan? Elapsed
    {
        get
        {
            return new TimeSpan(this.GetElapsedDateTimeTicks() * 10000000);
        }
    }

其中GetElapsedDateTimeTicks()使用DateTime.Now.Second()进行时序。

再次感谢!

退出时在Silverlight应用中保留值

您可以将数据存储在应用程序的独立存储设置中,并在启动时检索。

下面是一个在isolatedstoragessettings中存储信息的示例:

IsolatedStorageSettings.ApplicationSettings.Add("MySettingName", MySetting);

然后使用:

检索它
IsolatedStorageSettings.ApplicationSettings["MySettingName"];

IsolatedStorageSettings。ApplicationSettings的行为非常像字典。您应该检查是否已经存储了该名称的设置,如果是,要么删除它,要么覆盖它。覆盖它可以这样做:

if (!IsolatedStorageSettings.ApplicationSettings.Contains("MySettingName"))
    IsolatedStorageSettings.ApplicationSettings.Add("MySettingName", MySetting);
else
    IsolatedStorageSettings.ApplicationSettings["MySettingName"] = MySetting;
删除和重新添加的代码将是类似的,除了将else块交换为:
else
{
    IsolatedStorageSettings.ApplicationSettings.Remove("MySettingName");
    IsolatedStorageSettings.ApplicationSettings.Add("MySettingName", MySetting);
}