0

500 個の奇妙なニックネームのリストを、それぞれのステータス イメージを含むリストにバインドしています。リストのスクロールは非常に遅く、異なるリストのタブ間をフリックするのも同様です。

これはすべて、これらの画像を追加した最近の変更が原因です。

それをスピードアップする方法はありますか?

私のビットマップ (非常に小さい 16*16):

<BitmapImage x:Key="ActiveIcon" UriSource="/WPFClient;component/Images/active.png" />
<BitmapImage x:Key="IdleIcon" UriSource="/WPFClient;component/Images/idle.png" />
<BitmapImage x:Key="AwayIcon" UriSource="/WPFClient;component/Images/away.png" />
<BitmapImage x:Key="UnknownIcon" UriSource="/WPFClient;component/Images/unknown.png" />

私のリスト :

<ListBox ItemsSource="{Binding Users}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <DockPanel>
         <Image Source="{Binding Status, Converter={StaticResource UserStatusToIconConverter}}" Height="16" Width="16" Margin="0,0,5,0" />
         <TextBlock Text="{Binding Nick}" />
       </DockPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

私のコンバーター:

public class UserStatusToIconConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        string userStatus = value.ToString();
        string iconName = "UnknownIcon";

        switch (userStatus)
        {
            case "Active":
                iconName = "ActiveIcon";
                break;
            case "Idle":
                iconName = "IdleIcon";
                break;
            case "Away":
                iconName = "AwayIcon";
                break;
        }

        return iconName;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

注: コードも現在の状態では機能しません。実際には画像は表示されません。しかし、それはどこかで些細なことだと思います。

4

2 に答える 2