0

как SEVE фон сетки после того, как выбрать изображение путем выбора задачи картинкикак сохранить фон сетки в моем приложении

EX:

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

     //Save grid Background 
    } 
} 

помогите мне пожалуйста спасибо :)

Примечания: " Сохранить 'означает, что когда приложение откроется в следующий раз будет «сеткой назад», тот же фон выбран

ответ

1

Попробуйте это .. В примере я использовал a для активации PhotoChooserTask. XAML такой.

XAML

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <!--ContentPanel - place additional content here--> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <Button Name="btnSet" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Content="Set Image" Click="btnSet_Click" /> 
    </Grid> 
</Grid> 

Нажмите событие для кнопки.

C#

private void btnSet_Click(object sender, RoutedEventArgs e) 
{ 
    PhotoChooserTask photoTask = new PhotoChooserTask(); 
    photoTask.Completed += photoTask_Completed; 
    photoTask.PixelHeight = 1280; 
    photoTask.PixelWidth = 768; 
    photoTask.Show(); 
} 

В обработчике photoTask_Completed событий вы можете сохранить изображение на IsolatedStorage

void photoTask_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK) 
    { 
     using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      if (isoStore.FileExists(fileName)) 
      { 
       isoStore.DeleteFile(fileName); 
      } 
      using (IsolatedStorageFileStream targetStream = isoStore.OpenFile(fileName, FileMode.Create, FileAccess.Write)) 
      { 
       byte[] readBuffer = new byte[4096]; 
       int bytesRead = -1; 

       while ((bytesRead = e.ChosenPhoto.Read(readBuffer, 0, readBuffer.Length)) > 0) 
       { 
        targetStream.Write(readBuffer, 0, bytesRead); 
       } 
      } 
     } 
    } 
} 

Тогда в OnNavigatedTo случае вы можете загрузить изображение из IsolatedStorage и установить его в качестве фон.

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    byte[] data; 

    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
     if (isoStore.FileExists(fileName)) 
     { 
      using(IsolatedStorageFileStream stream = isoStore.OpenFile(fileName, FileMode.Open, FileAccess.Read)) 
      { 
       data = new byte[stream.Length]; 
       stream.Read(data, 0, data.Length); 
      } 

      MemoryStream ms = new MemoryStream(data); 
      bmp = new BitmapImage(); 
      bmp.SetSource(ms); 
      ImageBrush img = new ImageBrush(); 
      img.ImageSource = bmp; 
      LayoutRoot.Background = img; 
     } 
    } 
} 

Переменная fileName содержит имя изображения, сохраняемого в IsolatedStorage. Изображение переписывается каждый раз, когда вы выбираете новое изображение из библиотеки. Надеюсь это поможет.

+0

поблагодарить yooooooooooooooooooooooou очень оченьyyyyyyyyyyyyyyy много^_^ – mohammad

+0

Добро пожаловать: D –

1

попробуйте следующее:

XAML

<Grid x:Name="LayoutRoot"> 
    <Grid.Background> 
     <ImageBrush x:Name="imgsrc"></ImageBrush> 
    </Grid.Background> 
</Grid> 

CS:

if (e.TaskResult == TaskResult.OK) 
    { 
     BitmapImage Bitmap = new BitmapImage(); 
     Bitmap.SetSource(e.ChosenPhoto); 
     imgsrc.ImageSource = Bitmap; 
    } 

для сохранения изображения вы бы необходимо использовать IsolatedStorage. Вам нужно будет сохранить изображение в Isolatedstorage и иметь изолированный вариант variabe для сохранения состояния изображения независимо от того, выбрали ли вы какое-либо изображение или нет.

Если да, то получить изображение оттуда в противном случае никаких действий не было бы необходимо, вот хороший пример из вас может иметь ссылку для сохранения и Retriving изображения из IsolatedStorage Isolated Storage - Read and Save Images

+0

спасибо :)^_^ – mohammad

Смежные вопросы