1

我添加了四个图像,默认情况下我有背景图像。我用一个按钮随机改变背景。这是全景页面,我只想让我的应用程序保存最后一个状态(即记住最后一个背景图像),如果我的应用程序被激活,那么最后一个图像应该是默认背景图像。由于我已经在我的应用程序中添加了一些图像,所以我认为这不需要隔离存储。我需要的是当前背景图像(imguri)是否为bg1.jpg,如果我退出应用程序并重新启动它,则默认背景图像应为bg1.jpg。需要帮忙!

private void BackgroundBrowser_Click(object sender, RoutedEventArgs e)
{
    string imguri = "";

    click_count = click_count % 5;
    switch (click_count)
    {
        case 0: imguri = "Image/bg.jpg"; break;
        case 1: imguri = "Image/bg1.jpg"; break;
        case 2: imguri = "Image/bg3.jpg"; break;
        case 3: imguri = "Image/bg2.jpg"; break;
        case 4: imguri = ""; break;
    }
    click_count++;

    var app = Application.Current as App;
    app.appBmp = new BitmapImage(new Uri(imguri, UriKind.Relative));
    ImageBrush imageBrush = new ImageBrush();
    imageBrush.Stretch = Stretch.UniformToFill;
    imageBrush.Opacity = 0.7;
    imageBrush.ImageSource = app.appBmp;
    this.LayoutRoot.Background = imageBrush;
    app.appbrush = imageBrush;
    app.backchanged = true;
}
4

4 回答 4

1

您可以使用应用程序或用户设置。转到项目属性并单击设置选项卡。然后使用 String 作为类型创建设置名称 LastImagePath:

在此处输入图像描述

现在就在这一行之前:

var app = Application.Current as App;

添加此以将路径保存到 LastImagePath 设置:

Properties.Settings.Default.LastImagePath = imguri;
Properties.Settings.Default.Save();

要加载最后一张图片,你可以像这样在任何你想要的地方加载设置:

if (!(Properties.Settings.Default.LastImagePath == null))
   imgpath = Properties.Settings.Default.LastImagePath;
于 2012-08-11T14:29:04.307 回答
0

存储在用户/应用程序设置中的所有项目都需要可序列化(此处文档底部有注释)。在此处了解有关序列化的更多信息。

于 2014-06-27T20:16:56.773 回答
0

您也可以System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings以与 DelegateX 所示类似的方式使用。请注意,无论您如何“保存”您的设置,它都将存储在隔离的存储空间中。它只是被很好地包装和隐藏为 Properties/ApplicationSettings/Session 等属性或类名,但实际上数据将落在 ISO 上,并在您从设备上卸载应用程序时消失。

于 2012-08-11T14:34:50.290 回答
0

您需要在应用程序退出时将最后一个图像名称保存在文件中,并从文件中读取图像名称并在应用程序重新启动时加载它。我认为这是最简单的解决方案。

于 2012-08-11T13:23:02.257 回答