Example #1
0
        public int Compare(object firstItem, object secondItem)
        {
            if (firstItem == null || secondItem == null)
            {
                return(-1);
            }

            ColorItem colorItem1 = (ColorItem)firstItem;
            ColorItem colorItem2 = (ColorItem)secondItem;

            System.Drawing.Color drawingColor1 = System.Drawing.Color.FromArgb(colorItem1.Color.A, colorItem1.Color.R,
                                                                               colorItem1.Color.G, colorItem1.Color.B);
            System.Drawing.Color drawingColor2 = System.Drawing.Color.FromArgb(colorItem2.Color.A, colorItem2.Color.R,
                                                                               colorItem2.Color.G, colorItem2.Color.B);

            // Compare Hue
            double hueColor1 = Math.Round((double)drawingColor1.GetHue(), 3);
            double hueColor2 = Math.Round((double)drawingColor2.GetHue(), 3);

            if (hueColor1 > hueColor2)
            {
                return(1);
            }
            if (hueColor1 < hueColor2)
            {
                return(-1);
            }
            // Hue is equal, compare Saturation
            double satColor1 = Math.Round((double)drawingColor1.GetSaturation(), 3);
            double satColor2 = Math.Round((double)drawingColor2.GetSaturation(), 3);

            if (satColor1 > satColor2)
            {
                return(1);
            }
            if (satColor1 < satColor2)
            {
                return(-1);
            }
            // Saturation is equal, compare Brightness
            double brightColor1 = Math.Round((double)drawingColor1.GetBrightness(), 3);
            double brightColor2 = Math.Round((double)drawingColor2.GetBrightness(), 3);

            if (brightColor1 > brightColor2)
            {
                return(1);
            }
            if (brightColor1 < brightColor2)
            {
                return(-1);
            }

            return(0);
        }
Example #2
0
        private void UpdateRecentColors(ColorItem colorItem)
        {
            if (!RecentColors.Contains(colorItem))
            {
                RecentColors.Add(colorItem);
            }

            if (RecentColors.Count > 10) //don't allow more than ten, maybe make a property that can be set by the user.
            {
                RecentColors.RemoveAt(0);
            }
        }
Example #3
0
        private static ObservableCollection <ColorItem> CreateAvailableColors()
        {
            ObservableCollection <ColorItem> _standardColors = new ObservableCollection <ColorItem>();

            foreach (var item in ColorUtilities.KnownColors)
            {
                if (!String.Equals(item.Key, "Transparent"))
                {
                    var colorItem = new ColorItem(item.Value, item.Key);
                    if (!_standardColors.Contains(colorItem))
                    {
                        _standardColors.Add(colorItem);
                    }
                }
            }

            return(_standardColors);
        }
Example #4
0
        private void UpdateRecentColors(ColorItem colorItem)
        {
            if (!RecentColors.Contains(colorItem))
                RecentColors.Add(colorItem);

            if (RecentColors.Count > 10) //don't allow more than ten, maybe make a property that can be set by the user.
                RecentColors.RemoveAt(0);
        }
Example #5
0
        private static ObservableCollection<ColorItem> CreateAvailableColors()
        {
            ObservableCollection<ColorItem> _standardColors = new ObservableCollection<ColorItem>();

            foreach (var item in ColorUtilities.KnownColors)
            {
                if (!String.Equals(item.Key, "Transparent"))
                {
                    var colorItem = new ColorItem(item.Value, item.Key);
                    if (!_standardColors.Contains(colorItem))
                        _standardColors.Add(colorItem);
                }
            }

            return _standardColors;
        }