private async void Grid_Loaded(object sender, RoutedEventArgs e) { List <Poster> list = Database.GetPosters(id); await Task.Run(async() => { if (list.Count > 0) { Dictionary <Poster, BitmapImage> dic = await GetPosters(list); Dispatcher.Invoke(() => { var sb = (Storyboard)FindResource("OpacityDown"); var temp = sb.Clone(); temp.Completed += (s, ev) => { LoadingText.Visibility = Visibility.Collapsed; }; temp.Begin(LoadingText); }, DispatcherPriority.Send); foreach (var item in dic) { Dispatcher.Invoke(() => { PosterSelection ps = new PosterSelection(item.Key, item.Value); ps.Background.MouseUp += (s, ev) => OnClick(ps); ps.Width = 208; ps.Opacity = 0; var stb = (Storyboard)FindResource("OpacityUp"); stb.Begin(ps); Panel.Children.Add(ps); }, DispatcherPriority.Send); Thread.Sleep(16); } } else { Poster p = new Poster(); p.fileName = "kua"; poster = p; } }); }
private void OnClick(PosterSelection poster) { foreach (PosterSelection selection in Panel.Children) { if (selection.poster.id != poster.poster.id && selection.selected) { selection.Background_MouseUp(new object(), null); } } currentPoster = poster.selected ? poster.poster : null; }