private void SortSpawnsetFilesButton_Click(object sender, RoutedEventArgs e) { Button button = sender as Button; foreach (Image image in spawnsetSortingImages) { if (image == button.Content as Image) { image.Source = new BitmapImage(ContentUtils.MakeUri(System.IO.Path.Combine("Content", "Images", "Buttons", "SpawnsetSortActive.png"))); image.RenderTransform = new ScaleTransform { ScaleY = -(image.RenderTransform as ScaleTransform).ScaleY }; } else { image.Source = new BitmapImage(ContentUtils.MakeUri(System.IO.Path.Combine("Content", "Images", "Buttons", "SpawnsetSort.png"))); } } SpawnsetListSorting <SpawnsetListEntry> sorting = button.Tag as SpawnsetListSorting <SpawnsetListEntry>; SpawnsetListHandler.Instance.ActiveSpawnsetSorting = sorting; SpawnsetListHandler.Instance.ActiveSpawnsetSorting.Ascending = !SpawnsetListHandler.Instance.ActiveSpawnsetSorting.Ascending; SortSpawnsets(sorting); }
private void SortSpawnsets(SpawnsetListSorting <SpawnsetListEntry> sorting) { List <SpawnsetListEntry> sorted = sorting.Ascending ? NetworkHandler.Instance.Spawnsets.OrderBy(sorting.SortingFunction).ToList() : NetworkHandler.Instance.Spawnsets.OrderByDescending(sorting.SortingFunction).ToList(); for (int i = 0; i < SpawnsetsList.Children.Count; i++) { Grid grid = SpawnsetsList.Children.OfType <Grid>().Where(g => g.Tag as SpawnsetListEntry == sorted[i]).FirstOrDefault(); SpawnsetsList.Children.Remove(grid); SpawnsetsList.Children.Insert(i, grid); SetBackgroundColor(grid); } }
private void SortAuthors(SpawnsetListSorting <AuthorListEntry> sorting) { List <AuthorListEntry> sorted = sorting.Ascending ? NetworkHandler.Instance.Authors.OrderBy(sorting.SortingFunction).ToList() : NetworkHandler.Instance.Authors.OrderByDescending(sorting.SortingFunction).ToList(); for (int i = 0; i < AuthorsListBox.Items.Count; i++) { ListBoxItem lbi = AuthorsListBox.Items.OfType <ListBoxItem>().Where(g => (g.Content as Grid).Tag as AuthorListEntry == sorted[i]).FirstOrDefault(); AuthorsListBox.Items.Remove(lbi); AuthorsListBox.Items.Insert(i, lbi); (AuthorsListBox.Items[i] as ListBoxItem).IsSelected = sorted[i] == authorSelection; } }
private StackPanel CreateHeaderStackPanel <T>(int index, List <Image> sortingImages, SpawnsetListSorting <T> sorting, SpawnsetListSorting <T> activeSorting, Action <object, RoutedEventArgs> buttonClick) where T : AbstractListEntry { Label label = new Label { FontWeight = FontWeights.Bold, Content = sorting.DisplayName }; Image image = new Image { Source = new BitmapImage(ContentUtils.MakeUri(System.IO.Path.Combine("Content", "Images", "Buttons", sorting == activeSorting ? "SpawnsetSortActive.png" : "SpawnsetSort.png"))), Stretch = Stretch.None, RenderTransformOrigin = new Point(0.5, 0.5), RenderTransform = new ScaleTransform { ScaleY = sorting.IsAscendingDefault ? sorting.Ascending ? 1 : -1 : sorting.Ascending ? -1 : 1 } }; sortingImages.Add(image); Button button = new Button { ToolTip = $"Sort by \"{sorting.FullName}\"", Width = 18, Content = image, Tag = sorting }; button.Click += (sender, e) => buttonClick(sender, e); StackPanel stackPanel = new StackPanel { Orientation = Orientation.Horizontal }; stackPanel.Children.Add(label); stackPanel.Children.Add(button); Grid.SetColumn(stackPanel, index++); return(stackPanel); }