0

私のWindows Phone 7アプリケーションで、バックラウンドを変更できるボタンを作成しました。数の。デフォルトでは、背景画像があります。私が必要とするのは、ユーザーが背景を変更した場合(上記のボタンを使用)、その画像を保存するか、分離ストレージに記憶させることです。そして、アプリが再び起動されると、その特定の画像 (前回ユーザーが選択したもの) がアプリの背景画像になるはずです。問題は、画像を取得できず(保存はできます)、アプリの起動時にその画像を背景画像として自動的に配置する方法がわからないことです(ボタンを使用して保存または取得したくない、自動でなければなりません)。誰でも私を助けることができますか?お疲れ様でした!

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

        click_count = click_count % 4;
        switch (click_count)
        {
            case 0: imguri = "Images/image4.png"; break;
            case 1: imguri = "Images/image3.jpg"; break;
            case 2: imguri = "Images/image2.png"; break;
            case 3: imguri = "Images/image1.jpg"; break;

        }
        click_count++;

        BitmapImage bitmapImage = new BitmapImage(new Uri(imguri, UriKind.Relative));
        ImageBrush imageBrush = new ImageBrush();
        imageBrush.ImageSource = bitmapImage;
        var app = Application.Current as App;
        this.LayoutRoot.Background = imageBrush;
        app.appbrush = imageBrush;
        app.backchanged = true;

        string filename = "Images/app.jpg";
        StreamResourceInfo sr = Application.GetResourceStream(new Uri(filename, UriKind.Relative));

        bitmapImage.SetSource(sr.Stream);
        WriteableBitmap wb = new WriteableBitmap(bitmapImage);

        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            myIsolatedStorage.CreateDirectory("Images");

            if (myIsolatedStorage.FileExists(filename))
            {
                myIsolatedStorage.DeleteFile(filename);
            }
            IsolatedStorageFileStream filestream = myIsolatedStorage.CreateFile(filename);
            Extensions.SaveJpeg(wb, filestream, wb.PixelWidth, wb.PixelHeight, 0, 100);
            filestream.Close();
        }
    }
4

1 に答える 1

0

画像をロードして背景に割り当てるには、次のコードを試してください。

IsolatedStorageFile Store = IsolatedStorageFile.GetUserStoreForApplication();

if (Store.FileExists("Images/app.jpg"))
{
    try
    {
        using (IsolatedStorageFileStream Stream = new IsolatedStorageFileStream(Path, FileMode.Open, FileAccess.Read, Store))
        {
            if (Stream.Length > 0)
            {
                BitmapImage Image = new BitmapImage();
                Image.SetSource(Stream);
                this.LayoutRoot.Background = Image;
            }
        }
    }
    catch (Exception)
    {            
    }
}
于 2012-06-03T20:29:35.343 に答える