WPFの画像表示に問題があります。 ImageSourcesを表示するListViewがあります。 WPFの画像ビューアのパフォーマンスの問題
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border x:Name="Bd" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="1">
<ScrollViewer Padding="{TemplateBinding Padding}" Focusable="false">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="ImagesListerViewItemsTemplate" DataType="{x:Type ImageSource}" >
<Border Height="150" Width="150" CornerRadius="0,0,0,0" BorderThickness="1,1,1,1" Margin="4,4,4,4" BorderBrush="#FF000000">
<Border Margin="8,8,8,8" Background="#FFFFFFFF">
<Border.BitmapEffect>
<OuterGlowBitmapEffect GlowColor="#FFFFFFFF"/>
</Border.BitmapEffect>
<Image Source="{Binding}" />
</Border>
</Border>
</DataTemplate>
や写真をロードする:
private static BitmapImage LoadDisplayableImage(System.IO.FileInfo file)
{
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.DecodePixelWidth = 100;
bi.DecodePixelHeight = 100;
bi.UriSource = new Uri(file.FullName);
bi.EndInit();
return bi;
}
しかし、私はサイズを変更しようとすると、希望がリストビューをスクロールしたりするときに私のプログラムは非常に遅いですフォームはわずか49枚しかありません。これと比較して、Windowsのエクスプローラでは、コンピュータに最大3000個の画像を読み込んで表示することができます。
どうすれば同じスピードを達成できますか?
私はそれを使いました:http://blogs.msdn.com/dancre/archive/2006/02/16/implementing-a-virtualizingpanel-part-4-the-goods.aspx しかし、それが何も表示していないときには速く、写真ではまだ非常に遅いです... –