0

UWPのImageクラスを使用して画像ビットマップを表示する簡単なアプリケーションを構築しています。 画像上で何かを変更すると、プログラムは表示された画像を更新しません。 別の一時イメージを使用してソースを変更しようとしましたが、問題は同じです。 これは、XAMLファイル内のオブジェクトUWPとC#(ラスベリーPi3のWindows10のIoT)を使用して画像をリフレッシュ

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

これは画像

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; 
     } 
    } 

のソースを変更するコードiはFrance.bmpに画像Area_128x128.bmpを切り替えると、私は変更されていますビットマップファイルをいくつかの描画を追加し、Area_128x128.bmpに再び切り替えると、イメージには古いものがあります。 イメージを正しく見るにはどうしたらいいですか?

答えて

1

URIの「ms-appx:///」というプレフィックスは、アプリのインストールディレクトリを表します。実行時にファイルの更新編集がサポートされていないことが判明しました。

ユーザーの場合、いくつかの回避策があります。

  • あなたはこのようApplicationData.RoamingFolderを使用することができます:あなたはこのようなKnownFolders.PicturesLibraryを使用することができます

       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; 
          } 
    
  • :一般的に

      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およびを参照してください。

関連する問題