1

Uri を使用して XAML グリッドに背景画像を設定しています。Uri は HTTP URL を指し、そこから取得してから、Win8 メトロ アプリの背景として画像をレンダリングします。

WPFがそれをメモリにロードし、ビューからレンダリングを終了したことを知らせるためにフックできるイベントまたは何かがあるかどうかを調べようとしています。

現在、小さな画像は十分に速くロードされ、スムーズにフェードインします。ただし、大きくて遅い画像をロードすると、背景として表示されるまでに数百ミリ秒かかります。つまり、フェードの途中でポップアップするか、フェード効果が完了した後。これはかなり貧弱に見えます。

目標は、アプリケーション ページ間でフェード トランジションを行うことです (私は既にこれを持っています)。

どんな提案も歓迎します。

4

2 に答える 2

3

画像をどのようにロードしているかは正確にはわかりませんが、BitmapImage に DownloadCompleted イベントがあります。

BitmapImage bmp = new BitmapImage(imageUri); 
bmp.DownloadCompleted += ReadyToDisplay; 
于 2012-04-04T21:42:59.503 に答える
0

Phil が言ったように、Windows ストア アプリの場合:

BitmapImage bmp = new BitmapImage(imageUri);
bmp.ImageOpened += ReadyToDisplay;

ImageOpened 画像ソースがダウンロードされ、正常にデコードされると発生します。このイベントを使用して、イメージをレンダリングする前にサイズを決定できます。

ソース: MSDN

于 2013-04-11T19:06:21.983 に答える