public object Convert(object value, Type targetType, object parameter,
                              System.Globalization.CultureInfo culture)
        {
            BloodcatDownloadOption option = value as BloodcatDownloadOption;

            if (parameter == null || option == null)
            {
                return(false);
            }

            switch (parameter as string)
            {
            case "NoTouch":
                return(option.Background == BloodcatWallpaperOption.NoTouch);

            case "SolidColor":
                return(option.Background == BloodcatWallpaperOption.SolidColor);

            case "RemoveBackground":
                return(option.Background == BloodcatWallpaperOption.RemoveBackground);

            case "ColorBrush":
                return(new SolidColorBrush(option.BackgroundColor));

            case "RemoveSkin":
                return(option.RemoveSkin);

            case "RemoveVideoAndStoryboard":
                return(option.RemoveVideoAndStoryboard);
            }

            throw new Exception("Not expected download option.");
        }
        public object ConvertBack(object value, Type targetType, object parameter,
                                  System.Globalization.CultureInfo culture)
        {
            BloodcatDownloadOption option = new BloodcatDownloadOption();

            var window = MainWindow.InUseWindow;

            if (window.NoTouch.IsChecked ?? false)
            {
            }
            else if (window.SolidColor.IsChecked ?? false)
            {
                var brush = window.ColorBrush.Fill as SolidColorBrush;
                option.BackgroundColor = brush.Color;
            }
            else if (window.RemoveBackground.IsChecked ?? false)
            {
                option.Background = BloodcatWallpaperOption.RemoveBackground;
            }

            option.RemoveVideoAndStoryboard = window.RemoveVideoAndStoryboard.IsChecked ?? false;
            option.RemoveSkin = window.RemoveSkin.IsChecked ?? false;

            switch (parameter as string)
            {
            case "NoTouch":
                option.Background = BloodcatWallpaperOption.NoTouch;
                break;

            case "SolidColor":
                option.Background = BloodcatWallpaperOption.SolidColor;
                break;

            case "RemoveBackground":
                option.Background = BloodcatWallpaperOption.RemoveBackground;
                break;

            case "RemoveSkin":
                option.RemoveSkin = (bool)value;
                break;

            case "RemoveVideoAndStoryboard":
                option.RemoveVideoAndStoryboard = (bool)value;
                break;
            }

            return(option);
        }