dotnet / dotnet/wpf

Listbox Image Binding Is Slow and Freezes UI

Open
#9,984 1 comment 0 reactions 0 assignees View on GitHub
Investigate Performance
Dominant language
C#
Stars
7.7k
Forks
1.3k
Avg merge
1d 11h
Merged PRs (30d)
61

Description

### Description

```
public static async Task GetImage(string url,ImageType imageType)
{
var bitmapImage = new BitmapImage(new Uri(url,UriKind.Absolute));
return bitmapImage;
}
```

```






<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Grid.ZIndex" Value="1"/>
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.1" ScaleY="1.1"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>




<Setter Property="IsSelected" Value="{Binding Content.IsSelected, Mode=TwoWay, RelativeSource={RelativeSource Self}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>



































```

```
public static async Task GetPopularMoviesAsync(string language, int page)
{
PopularMovies.Clear();
var popularMovies = await client.GetMoviePopularListAsync(language, page);
foreach (var movie in popularMovies.Results)
{
Movie mov = new Movie()
{
Bitmap = await GetImage(client.GetImageUrl("w500", movie.PosterPath).AbsoluteUri,ImageType.Poster),
Id = movie.Id,
Name = movie.Title,
Rating = movie.VoteAverage,
RatingNumber = movie.VoteAverage.ToString(),
ShowType = ShowType.Movie,
};
if (PopularMovies.Any(x => x.Id == movie.Id))
{

}
else
{
PopularMovies.Add(mov);
}
}
}
```
It is slow and freezes UI. Btw I am using https://github.com/jellyfin/TMDbLib. And I read and applied this article: But still slow
https://github.com/RickStrahl/BlogPosts/blob/master/2024-01/Working%20around%20the%20WPF%20Image%20Control%20Blues/WorkingAroundWPFImageControlBlues.md
Btw my 2018 project .net 4.7.2 with same codes runs very fast. What did you change in ImageControl?

### Expected behavior

It should work without freezes and fast

### Actual behavior

Slow and Freezes UI

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.