2013-08-19 2 views
0

에서 캐싱 이미지 동안 내가 같은 웹에서 이미지를로드하는 데 사용하는 WPF C#에서 코드를 (인터넷이 느리고 모든 경우). 이미지를 표시하는 동안 ProgressRing (Mahapps.Metro 툴킷에서)을 표시하고 활성화하고 이미지가 표시되면 어떻게 사라지나요?표시 로딩 URL

이미지를 다운로드 할 때와 완전히로드 할 때 이벤트 트리거를 알지 못합니다.


단지 참고 사항 :

답변

0

클래스 BitmapSource는에서 다음과 같은 이벤트를 살펴 (BitmapImage의 기본 클래스)를 가지고 . Uri에서 BitmapImage를 만들고 즉시 보여줍니다. 따라서 BitmapCacheOption.OnLoad을 설정할 필요가 없습니다 (어느 afaik는 EndInit 직후에 닫아야하는 스트림에서로드하는 경우에만 필요합니다). 그래서 당신은 다음과 같은 코드를 단축 할 수있다 :

if (!string.IsNullOrEmpty(myImgURL)) 
{ 
    var imgBitmap = new BitmapImage(new Uri(myImgURL)); 
    myImgControl.Source = imgBitmap; 

    if (imgBitmap.IsDownloading) 
    { 
     // start download animation here 

     imgBitmap.DownloadCompleted += (o, e) => 
     { 
      // stop download animation here 
     }; 

     imgBitmap.DownloadFailed += (o, e) => 
     { 
      // stop download animation here 
     }; 
    } 
+0

환상적인 당신을 감사합니다. 나는 전에 그들을 보지 못했다. – touyets