2013-12-14 2 views
1

я сохранил файл с именем «logo.jpg» в IsolatedStorage, используя этот код ...получить URI изображений хранится в IsolatedStorage

private void step2_Click(object sender, RoutedEventArgs e) 
     { 
      // Create a filename for JPEG file in isolated storage. 
      String tempJPEG = "logo.jpg"; 

      // Create virtual store and file stream. Check for duplicate tempJPEG files. 
      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       if (myIsolatedStorage.FileExists(tempJPEG)) 
       { 
        myIsolatedStorage.DeleteFile(tempJPEG); 
       } 

       IsolatedStorageFileStream fileStream = myIsolatedStorage.CreateFile(tempJPEG); 

       try 
       { 
        WriteableBitmap wb = new WriteableBitmap(img); 

        // Encode WriteableBitmap object to a JPEG stream. 
        Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 
       } 
       catch { } 
       //wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 
       fileStream.Close(); 
      } 
      NavigationService.Navigate(new Uri("/Stage2.xaml?num="+Contact_number.Text+"&name="+contact_name.Text, UriKind.Relative)); 
     } 

и создание плитки, используя эту функцию ..

private StandardTileData GetSecondaryTileData() 
    { 
     string filePath = System.IO.Path.Combine(@"/Shared/ShellContent", "logo.jpg"); 

     StandardTileData tileData = new StandardTileData 
     { 
      Title = name, 
      BackgroundImage = new Uri(@"isostore:" + filePath, UriKind.Absolute), 
      Count = 0, 
      BackTitle = "app", 
      BackBackgroundImage = new Uri("", UriKind.Absolute), 
      BackContent = "content" 
     }; 

но бросает исключение «исключение типа„System.UriFormatException“произошло в System.ni.dll, но не был обработан в пользовательском коде

Дополнительная информация: Недопустимый URI: URI пуст. "

+0

Только что проверил мой IsolatedStorage с помощью isostorespy. изображение находится в корне изостоража. а не в общем содержимом оболочки. что теперь? – Rishabh876

ответ

1

проблема заключалась в том, что изображение не было в общем/shellcontent /, а также

BackBackgroundImage = new Uri("", UriKind.Absolute), 

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

0

использование этого

MediaLibraryExtension.GetPath(p);

здесь р является объектом класса Picture (то есть картина, для которой он будет возвращать путь)