0

Windows Phone XAML ページにいくつかの画像があり、この方法でロジックに従ってコード ビハインドからソースを動的に設定しています。

 img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");

ページが読み込まれ、イメージが完全に読み込まれると正常に動作しますが、アプリのロジックに従って、2 つのボタンを持つ XNA ベースのカスタム メッセージ ボックスであるメッセージ ボックスを表示します。そして、ユーザーが[OK]をクリックすると、画像を動的に再度ロードする必要があり、呼び出していました上記と同じ関数ですが、その時点で例外が発生"Invalid Cross Thread Exception"しますこれは、UIスレッドではなくバックグラウンドスレッドでの画像ソース設定が原因である可能性があるため、次のように試しDispatcherましたよくこのように

 this.Dispatcher.BeginInvoke(new System.Action(delegate()
                {
                    img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");
                }));

このディスパッチャでは例外UIはありませんでしたが、更新されていません

なぜそうなのか誰か教えてください。そして、同じメッセージ ボックスの [OK] ボタンをもう一度ナビゲートしようとしましたが、同じ " Invalid Cross Thread" 例外が発生しています

4

1 に答える 1

0

イベント ハンドラーを img1.ImageFailed に追加してみてください。画像の読み込みに失敗した場合は、そのイベントをリッスンしていない限り、黙って読み込まれます。

于 2013-05-30T15:49:16.817 に答える