示例#1
0
        private void OnDownloadMissingImages(object sender, RoutedEventArgs e)
        {
            Task.Factory.StartNew(() =>
            {
                var downloader = new SymbolDownload();
                downloader.Download(PathHelper.SymbolCacheFolder);

                var setDownload = new SetDownload(NotificationCenter.Instance);
                setDownload.Download(PathHelper.SetCacheFolder, StaticMagicData.SetDefinitions);
            });
        }
        public static void OnImageChanged(
            DependencyObject d,
            DependencyPropertyChangedEventArgs e)
        {
            var instance = d as SetImage;

            if (instance != null)
            {
                // Trigger download and display
                var imageLoaded = false;
                var definition  = instance.SelectedSet;
                var rarity      = MagicRarity.Common;

                var card = instance.SelectedCard;
                if (card != null)
                {
                    definition = StaticMagicData.SetDefinitionsBySetCode[card.SetCode];
                    rarity     = card.Rarity ?? MagicRarity.Common;
                }

                if (definition != null)
                {
                    var filePart     = SetDownload.MakeSetImageName(definition, rarity);
                    var cardFileName = Path.Combine(PathHelper.SetCacheFolder, "medium", filePart);

                    // instance.imageToolTip.Content = definition.Name;

                    if (File.Exists(cardFileName))
                    {
                        try
                        {
                            //var uri = new Uri(cardFileName);
                            //var bitmap = new BitmapImage(uri);
                            //bitmap.Freeze();

                            var bitmap = BitmapImageCache.GetImage(cardFileName);

                            instance.imageControl.Source = bitmap;
                            instance.imageLabel.Text     = "";

                            instance.imageControl.Visibility = Visibility.Visible;
                            instance.imageLabel.Visibility   = Visibility.Hidden;
                            imageLoaded = true;
                        }
                        catch (Exception error)
                        {
                            // TODO: error dump
                            imageLoaded = false;
                        }
                    }
                }

                if (!imageLoaded)
                {
                    instance.imageControl.Source = null;
                    instance.imageLabel.Text     = definition?.Code;

                    instance.imageControl.Visibility = Visibility.Hidden;
                    instance.imageLabel.Visibility   = Visibility.Visible;
                }
            }
            else
            {
                instance.imageControl.Visibility = Visibility.Hidden;
                instance.imageLabel.Visibility   = Visibility.Hidden;
            }
        }