2014-04-11 3 views
0

은이 코드를 사용하고, 그렇게 할 수있는 사용자는 응용 프로그램에 대한 사용자 정의 배경 이미지를 설정합니다Windows phone에서 배경 이미지를 설정하고 저장하는 방법은 무엇입니까?

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     PhotoChooserTask photoChooserTask = new PhotoChooserTask(); 
     photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed); 
     photoChooserTask.Show(); 
    } 

    void photoChooserTask_Completed(object sender, PhotoResult e) 
    { 
     if (e.TaskResult == TaskResult.OK) 
     { 
      System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage(); 
      bmp.SetSource(e.ChosenPhoto); 

      var imageBrush = new ImageBrush 
      { 
       ImageSource = bmp, 
       Opacity = 0.5d 
      }; 
      App.RootFrame.Background = imageBrush; 
     } 
    } 

을하지만,이 다음 응용 프로그램의 점심을 위해 배경 이미지를 저장하지 않습니다. 이제 선택한 사진을 격리 된 저장소에 저장하여 응용 프로그램을 다시 시작한 후에도 응용 프로그램 배경으로 유지할 수 있습니까?

+0

시도가 사용 처리하도록하고 격리 된 저장소에 저장'e.OriginalFileName' – csharpwinphonexaml

답변

1

이미지를 비동기 적으로 저장하며 WP8에만 적용됩니다.

public static async Task SaveImageAsync(string imageFileName, BitmapImage image) 
{ 
    // Get Students LocalFolder 
    IStorageFolder folder = await ApplicationData.Current.LocalFolder 
     .CreateFolderAsync("Images", CreationCollisionOption.OpenIfExists); 


     IStorageFile file = await folder.CreateFileAsync(
      imageFileName, CreationCollisionOption.ReplaceExisting); 

     using (Stream stream = await file.OpenStreamForWriteAsync()) 
     {     
      var wrBitmap = new WriteableBitmap(image); 
      wrBitmap.SaveJpeg(stream, image.PixelWidth, image.PixelHeight, 100, 100); 
     } 
    } 

읽기 이미지 동기 모두 WP7.x WP8 : 당신은 온라인 리소스의 무리를 찾을 수 있습니다

public static BitmapImage LoadImage(string imageFileName) 
{ 
    BitmapImage bitmapImage = null; 

    using (var isoFile = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
     using (var isoStream = isoFile.OpenFile(
      imageFileName, FileMode.Open, FileAccess.Read)) 
     { 
       bitmapImage = new BitmapImage(); 
       bitmapImage.SetSource(isoStream); 
     } 
    } 

    return bitmapImage; 
} 

은, 그냥 구글. http://msdn.microsoft.com/en-us/library/xf96a1wz(v=vs.110).aspx

0

당신은이 작업을 수행하기 위해 무료 EZ_Iso.dll를 사용할 수있는 응용 프로그램 로딩에

image.Source = new BitmapImage(new Uri(IsolatedStorageSettings.ApplicationSettings["backgroundImage"], UriKind.Absolute)); 
0

IsolatedStorageSettings.ApplicationSettings["backgroundImage"]=e.OriginalFileName; 

선택.

는 그냥 이름으로 시리얼로 비트 맵을 전송하고 나머지

//Saving 
EZ_Iso.IsolatedStorageAccess.SaveImage(“MyImage”, YourImage); 

//Retrieving 
ImageControl.Source = EZ_Iso.IsolatedStroageAccess.GetImage(“MyImage”,Width,Height); 

EZ_Iso.dll Download and Documentation

관련 문제