将最后一张背景图像设置为默认值

时间:2012-08-11 13:16:28

标签: c# windows-phone-7

我添加了四张图片,默认情况下我有背景图片。我用一个按钮随机改变背景。这是全景页面,我只想让我的应用程序保存最后一个状态(即记住最后一个背景图像),如果我的应用程序被激活,那么最后一个图像应该是默认的背景图像。由于我已经在我的应用程序中添加了一些图像,所以我认为这不需要隔离存储。我需要的是,如果当前背景图像(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 个答案:

答案 0 :(得分:1)

您可以使用Application or User Settings。转到项目属性,然后单击“设置”选项卡。然后使用String作为类型创建一个设置名称LastImagePath:

enter image description here

现在就在这一行之前:

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;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

存储在用户/应用程序设置中的所有项目都需要可序列化(文档底部有一个注释here)。详细了解序列化here