2014-04-05 4 views
4

나는이 수업에 대해 다소 혼란 스럽다. 나는 누군가가 약간의 빛을 비추 길 희망했다. 다운로드 할 때 이미지의 BitmapCreateOptions에 달려 있다는 것을 알고 있습니다. 그러나.NET FW BitmapImage 클래스는 언제 다운로드/캐시합니까?

, 사용자가 만든 절대 BitmapImage, 말 : DelayCreation 올바른 기본 BitmapCreateOptions이기 때문에

var Image = new BitmapImage(new Uri("http://...", UriKind.Absolute)) 

그것은 바로 다운로드하지 않습니다?

당신이 할 경우 :

var Image = new BitmapImage(new Uri("http://...", UriKind.Absolute)) 
Image.CreateOptions = BitmapCreateOptions.None; 

은 당신이 BitmapCreateOptions을 설정 한 직후 이미지를 다운로드를 시작 것인가? 그렇다면이 동작은 똑같습니다. 맞습니까?

var Image = new BitmapImage(new Uri("http://...", UriKind.Absolute)) { CreateOptions = BitmapCreateOptions.None } 

이제는 BitmapImage의 캐싱이 어떻게 작동합니까?

  1. 언제 BitmapImage가 "캐싱"됩니까?
  2. 예 : 다운로드 만 '절대'이미지는 캐시되거나 로컬에 저장됩니다. "상대적"이미지도 있습니까?
  3. 언제/얼마나 자주 캐시를 새로 고치십니까?
  4. 격리 된 저장소의 이미지를 수동으로 Windows Phone 프로젝트에 캐싱하는 것에 대해 걱정할 필요가 없다는 뜻입니까?

마지막으로 언제 ImageOpenedImageFailed 이벤트가 발생합니까?

  1. BitmapImage을 다운로드 한 경우에만 발생합니까?
  2. BitmapImage이 캐시에서로드 될 때 발생합니까?
  3. 화면에 렌더링되는 시점은 언제입니까?
+0

아무도 어떻게 이미지 캐시의 작품을 알고 있습니까? 권자 –

답변

1

나는 몇 달 늦었지만 기록을 위해 EndInit이 호출되면 다운로드가 수행되고,이 후에는 속성의 다른 변경 사항이 삭제됩니다. 기본 생성자가 아닌 생성자를 사용하면 이미지가 자동으로 초기화됩니다. 즉

:

var Image = new BitmapImage(new Uri("http://...", UriKind.Absolute)); 
// The image is now intialized and is downloading/downloaded 
Image.CreateOptions = BitmapCreateOptions.None; // nothing happens here 

당신이 다음과 같이 수동으로 초기화 속성 설정하려면 :

var Image = new BitmapImage(); 

Image.BeginInit(); 
Image.UriSource = new Uri("http://...", UriKind.Absolute) 
Image.CreateOptions = BitmapCreateOptions.None; // This is default anyway so it won't affect 
// ..Setting other properties... 
Image.EndInit(); 
관련 문제