나는 이미지를 목록 상자에 보여주는 간단한 사진 갤러리 응용 프로그램을 만들고 있습니다. xaml은 다음과 같습니다.WPF 성능
<ListBox x:Name="imageList" Margin="10,10" ItemsSource="{Binding}" Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}" HorizontalAlignment="Left"></TextBlock>
<Image Source="{Binding}" Width="100" Height="100" HorizontalAlignment="Center"></Image>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
여기에 설정된 DataContext는 JPEG 이미지 파일 경로의 문자열 []입니다.
총 크기가 11MB 인 10-11 개의 이미지를 사용할 때 총 메모리 사용량은 최대 500MB가됩니다 !!! 이 앱은 아무것도하지 않는 간단한 사진보기 앱이므로 정말 놀랍습니다. 이 응용 프로그램을 실행하면 내 컴퓨터를 사용할 수 없게됩니다.
Vista에서 VS 2010 express, .NET 4를 사용하고 있습니다. 어느 누구도 엄청난 메모리 사용량을 요구하는 백그라운드에서 무슨 일이 일어나는지 설명해 주실 수 있습니까? 그리고 그것을 최적화하기 위해 무엇을 할 수 있습니까?
미리 감사드립니다. 다른 키를
그렇게 변환기를 통해 이미지를 결합 BitmapImage
의 decodepixelwidth 필드 수 있습니다
배경에서 무슨 일이 일어나고 있는지는 게시 한 Xaml과 관련이 거의 없습니다. 이미지를로드하는 코드를 게시 할 수 있습니까? –
예. 데이터 컨텍스트를 설정하는 버튼이 있습니다. 버튼 클릭시 코드는 다음과 같습니다. string [] files = Directory.GetFiles (@ "C : \ wpf_test"); this.DataContext = files; 코드에는 다른 것이 없습니다. – thewpfguy