2016-09-09 1 views
0

사실, 이미지 URI가있는 목록이 있습니다. foreach는 루프 내부에서이 같은 이들의 URI에서 이미지 개체를 만들 :URI (웹)의 UWP FlipView 이미지

foreach (Uri imageUri in uriList) 
{ 
    BitmapImage bmi = new BitmapImage(new Uri(imageUri)); 
    Image image = new Image(); 
    image.source = bmi; 

    flipView.Items.Add(image); 
} 

이제 문제는 많은 이미지 (100 ~ 200)이있는 경우, 다음 RAM 사용량이 매우 높은 통해 빠른 강타 할 때 FlipView. 내가 본 것은 또한 모든 이미지가 "캐싱 (cached)"또는 다른 것일 것이므로 FlipView로 돌아 가면 더 이상 인터넷 트래픽이 생성되지 않는다는 것입니다.

제 질문은 웹 이미지에서 "이미지 갤러리"를 얻을 수있는 더 좋은 방법이 있습니까?

안부

+0

'FlipView'에서는 문제가 발생하지 않는다고 생각합니다. uri를 Image로 변환하고 FlipView에 추가하는 데 시간이 걸리며 동시에 모든 항목을 변환합니다. 어쩌면 이미지 입자를 변환하려고 시도 할 수 있습니다. 예를 들어 변환하고 20 개 이미지를 매번 filpview에 추가 한 다음 보여줄 수 있습니다. 사용자가 열 번째 항목을 찾으면 계속해서 다음 항목을 추가하는 등의 작업을 수행합니까? –

+0

나는 이것을 8 개의 큰 이미지로 테스트했다. 메모리 소비 또한 엄청 크다. – andy

+1

방금 ​​FlipView의 ItemTemplate을 사용하여 이미지 컨트롤의 소스로 uri 문자열을 직접 전달하려고 시도했지만 약간의 차이는 있지만, 많은 거대한 이미지가있는 것으로 보입니다 ... 잘 될지 모르겠습니다. 연습. 내가 보여주는 입자가 지금은 보이지 않는데 ... 미안해. –

답변

1

플립 뷰는 항목의 다량을 표시하는 데 사용되는 것으로 의도되지 않는다. 대신에 수평 ListView를 사용해야합니다.

먼저 ListView의 스타일을 수정하여 HorizontalSnapPointsType 속성을 MandatorySingle로 변경해야합니다 (이미지가 플립보기와 같이 올바른 위치로 스냅 될 수 있도록). 셀의 너비는 flipview의 이전 너비와 동일해야합니다.

+0

"플립 뷰가 가상화를 지원하지 않습니다."어떻게 그렇게 확신 할 수 있습니까?! – AymenDaoudi

+0

나는 그가 정확하다고 생각한다. 나는 그것을 테스트했으며 메모리 사용량은 여전히 ​​매우 높다. 하지만 FlipView와 동일한 동작을하는 ListView를 어떻게 사용할 수 있습니까? – andy

+0

먼저 HorizontalSnapPointsType 속성을 MandatorySingle로 변경하기 위해 ListView의 스타일을 수정해야합니다 (이미지가 플립보기와 같이 올바른 위치로 스냅 될 수 있도록). 셀의 너비는 플립 뷰의 이전 너비와 동일해야합니다. 미안하지만, FlipView의 기본 ItemsPanelTemplate은 가상화를 지원하는 VirtualizingStackPanel입니다. – thang2410199

1

MSDN에서 FlipView은 25 개 항목 (이미지)을 초과하지 않는 컬렉션에 가장 적합합니다. 당신이 할 수있는

가장 좋은 것은 수행하여 예를 들어, FlipView에`DataVirtualization을 추가하는 것입니다

<FlipView> 
    <FlipView.ItemsPanel> 
     <ItemsPanelTemplate> 
     <VirtualizingStackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </FlipView.ItemsPanel> 
</FlipView> 

이미지는 "캐시"하고 관하여, 즉 정상, BitmapeImages 기본적으로 이미지를 캐시합니다.

+0

항목을 빠르게 스 와이프 할 때 메모리 사용량이 여전히 높고 항목을 스 와이프하는 것을 멈추면 메모리 사용량이 높습니다. – andy