1

イメージ ダウンローダーとして使用する DependencyObject を作成しています。アプリケーションがイメージをダウンロードすると、この動作は正常であり、イメージ コントロールを Uri から作成された BitmapImage にバインドするか、直接Uri 自体をバインドします。ただし、ストリームを使用する場合はそうではありません。少なくとも私の場合、これは私のコードです:

    if ( String.IsNullOrEmpty( ImageEx.GetImage( this ) ) ) return;

        ImageBitmap = new BitmapImage( new Uri( String.Concat( "ms-appx:///", ImageEx.GetLoadingImage( this ) ) ) );
        //ImageBitmap = new BitmapImage( new Uri( ImageEx.GetImage( this ), UriKind.Absolute ) );
        //return;

        try {
            var ras = new InMemoryRandomAccessStream();
            var memoryStream = new MemoryStream();
            var stream = await client.GetStreamAsync( ImageEx.GetImage( this ) );

            await stream.CopyToAsync( memoryStream );
            var output = ras.GetOutputStreamAt( 0 );
            var dw = new DataWriter( output );
            var task = new Task( () => dw.WriteBytes( memoryStream.ToArray() ) );
            task.Start();

            await task;
            await dw.StoreAsync();

            await output.FlushAsync();

            ImageBitmap = new BitmapImage();
            await ImageBitmap.SetSourceAsync( ras);             


        } catch ( Exception ex ) {

    }

そのため、アプリケーションを前後に移動すると、Uri で作成されたときのように BitmapImage をキャッシュしたり、Image コントロールを Uri に直接バインドしたりする代わりに、Image がリロードされるたびに。BitmapImage が再度読み込まれないようにするにはどうすればよいですか?

ありがとう

4

0 に答える 0