2017-08-03 40 views
0

我正在构建一个简单的应用程序,显示使用UWP中的Image类的图像位图。 当我改变图像上的东西时,程序不会刷新显示的图像。 我试图改变源使用另一个临时图像,但问题仍然是一样的。 这是XAML文件的对象使用UWP和C#刷新图像(树莓派3 Windows10物联网)

<Image x:Name="image" HorizontalAlignment="Left" Height="128" VerticalAlignment="Top" Width="128" AutomationProperties.AccessibilityView="Raw" ManipulationMode="All"/> 

这是当我切换图像Area_128x128.bmp到France.bmp改变所述图像

private void ChangeImage_BTN_Click(object sender, RoutedEventArgs e) 
    { 
     readImage(); 
    }  


    private void readImage() 
    { 
     switch (nimg) 
     { 

      case 1: 
       image.Source = new BitmapImage(new Uri("ms-appx:///Assets/France.bmp")); 
       nimg = 3; 
       break; 
      case 2: 
       //image.Source = new BitmapImage(new Uri("ms-appx:///Assets/Inghilterra.bmp")); 
       //nimg = 3; 
       break; 
      case 3: 
       image.Source = new BitmapImage(new Uri("ms-appx:///Assets/Area24_128x128.bmp")); 
       nimg = 1; 
       break; 
     } 
    } 

的源代码,我修改位图文件添加一些绘制,再次切换到Area_128x128.bmp图像具有旧的东西。 如何正确地看到图像?

回答

1

URI中的“ms-appx:///”前缀是指应用程序的安装目录。事实证明,不支持在运行时更新文件的编辑。

对于您的用户案例,您可以尝试一些变通办法。

  • 您可以使用ApplicationData.RoamingFolder这样的:

       Windows.Storage.StorageFolder roamingFolder = Windows.Storage.ApplicationData.Current.RoamingFolder; 
          var file = await roamingFolder.GetFileAsync("France.bmp"); 
          using (var fileStream = (await file.OpenAsync(Windows.Storage.FileAccessMode.Read))) 
          { 
           var bitImg = new BitmapImage(); 
           bitImg.SetSource(fileStream); 
           image.Source = bitImg; 
          } 
    
  • 您可以使用KnownFolders.PicturesLibrary这样的:

      var file = await KnownFolders.PicturesLibrary.GetFileAsync("France.bmp"); 
          using (var fileStream = (await file.OpenAsync(Windows.Storage.FileAccessMode.Read))) 
          { 
           var bitImg = new BitmapImage(); 
           bitImg.SetSource(fileStream); 
           image.Source = bitImg; 
          } 
    

一般来说,KnownFolders.PicturesLibrary路径C:\Users\[YOUR USER NAME]\Pictures

欲了解更多信息,你可以参考Store and retrieve settings和。