Exemplo n.º 1
0
        private void UpdateSample(int xPos, int yPos, bool fireColorChanged)
        {
            if (SampleSelector != null)
            {
                SampleSelector.SetValue(Canvas.LeftProperty, xPos - (SampleSelector.Height / 2));
                SampleSelector.SetValue(Canvas.TopProperty, yPos - (SampleSelector.Height / 2));
            }

            float yComponent = 1 - (float)(yPos / Sample.Height);
            float xComponent = (float)(xPos / Sample.Width);

            byte alpha = (byte)255;

            Color = ColorPickerUtils.ConvertHsvToRgb(alpha, (float)m_selectedHue, xComponent, yComponent);

            _hsv = new Hsv()
            {
                Hue = m_selectedHue, Saturation = xComponent, Value = yComponent
            };

            if (fireColorChanged)
            {
                OnColorChanging(EventArgs.Empty);
            }
        }
Exemplo n.º 2
0
        private void UpdateSelection(int yPos, bool fireColorChanged)
        {
            int   huePos        = (int)(yPos / HueMonitor.Height * 255);
            int   gradientStops = 6;
            byte  alpha         = (byte)255;
            Color c             = ColorPickerUtils.GetColorFromPosition(alpha, huePos * gradientStops);

            Sample.Fill = new SolidColorBrush(c);
            HueSelector.SetValue(Canvas.TopProperty, yPos - (HueSelector.Height / 2));
            m_selectedHue = (float)(yPos / HueMonitor.Height) * 360;
            UpdateSample(m_sampleX, m_sampleY, fireColorChanged);
        }
Exemplo n.º 3
0
        private List <GradientStopInfo> ToCollection(GradientStopCollection stops)
        {
            if (stops == null)
            {
                return(null);
            }
            List <GradientStopInfo> coll = new List <GradientStopInfo>();

            foreach (GradientStop stop in stops)
            {
                coll.Add(new GradientStopInfo()
                {
                    Color = ColorPickerUtils.GetHexCode(stop.Color), Offset = stop.Offset
                });
            }
            return(coll);
        }
Exemplo n.º 4
0
 private static List <GradientStopCollection> GetPreDefinedGradients()
 {
     if (stops == null)
     {
         lock (lockObject)
         {
             if (stops == null)
             {
                 stops = new List <GradientStopCollection>();
                 stops.Add(createGradientStopCollection(new Color[] { Colors.Transparent, Colors.Blue, Colors.Red, Colors.Yellow, Colors.White }));
                 stops.Add(createGradientStopCollection(new Color[] { Colors.White, Colors.Yellow, Colors.Red, Colors.Blue, Colors.Transparent }));
                 stops.Add(createGradientStopCollection(new Color[] {
                     ColorPickerUtils.FromHex("#FFFFC800"),
                     ColorPickerUtils.FromHex("#FF0000FF"),
                     ColorPickerUtils.FromHex("#FFB700C4"),
                     ColorPickerUtils.FromHex("#FFFF0088"),
                     ColorPickerUtils.FromHex("#FFFF0051"),
                     ColorPickerUtils.FromHex("#FFFF4229"),
                     ColorPickerUtils.FromHex("#FFFF8C00")
                 }));
                 stops.Add(createGradientStopCollection(new Color[] {
                     ColorPickerUtils.FromHex("#FFFF8C00"),
                     ColorPickerUtils.FromHex("#FFFF4229"),
                     ColorPickerUtils.FromHex("#FFFF0051"),
                     ColorPickerUtils.FromHex("#FFFF0088"),
                     ColorPickerUtils.FromHex("#FFB700C4"),
                     ColorPickerUtils.FromHex("#FF0000FF"),
                     ColorPickerUtils.FromHex("#FFFFC800")
                 }));
                 stops.Add(createGradientStopCollection(new Color[] { Colors.Transparent, Colors.Black, Colors.Yellow, Colors.Red, Colors.White }));
                 stops.Add(createGradientStopCollection(new Color[] { Colors.White, Colors.Red, Colors.Yellow, Colors.Black, Colors.Transparent }));
             }
         }
     }
     return(stops);
 }
Exemplo n.º 5
0
 internal static Color FromHex(string newColor)
 {
     return(ColorPickerUtils.FromHex(newColor));
 }
 private static LinearGradientBrush createBrush(string startHex, string endHex)
 {
     return(createBrush(ColorPickerUtils.FromHex(startHex), ColorPickerUtils.FromHex(endHex)));
 }
Exemplo n.º 7
0
        private static void applyColorToSymbol(Symbol symbol, Color color)
        {
            if (symbol == null)
            {
                return;
            }

            FillSymbol fillSymbol = symbol as FillSymbol;

            if (fillSymbol != null)
            {
                byte currentAlpha = (byte)255;
                if (fillSymbol.Fill != null)
                {
                    currentAlpha = (byte)(255 * fillSymbol.Fill.Opacity); // Preserve current opacity of symbol color
                }
                string colorHex = Color.FromArgb(currentAlpha, color.R, color.G, color.B).ToString();
                Color  newColor = ColorPickerUtils.FromHex(colorHex);
                if (fillSymbol is ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol)
                {
                    (fillSymbol as ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol).Color = newColor;
                }
                else
                {
                    fillSymbol.Fill = new SolidColorBrush(newColor);
                }
            }
            else
            {
                LineSymbol lineSymbol = symbol as LineSymbol;
                if (lineSymbol != null)
                {
                    byte currentAlpha = (byte)255;
                    if (lineSymbol.Color != null)
                    {
                        currentAlpha = (byte)(255 * lineSymbol.Color.Opacity);// Preserve current opacity of symbol color
                    }
                    string colorHex = Color.FromArgb(currentAlpha, color.R, color.G, color.B).ToString();
                    Color  newColor = ColorPickerUtils.FromHex(colorHex);
                    lineSymbol.Color = new SolidColorBrush(newColor);
                }
                else
                {
                    ESRI.ArcGIS.Mapping.Core.Symbols.MarkerSymbol markerSymbol = symbol as ESRI.ArcGIS.Mapping.Core.Symbols.MarkerSymbol;
                    if (markerSymbol != null)
                    {
                        byte currentAlpha = (byte)255;
                        if (markerSymbol.Color != null)
                        {
                            currentAlpha = (byte)(255 * markerSymbol.Color.Opacity);// Preserve current opacity of symbol color
                        }
                        string colorHex = Color.FromArgb(currentAlpha, color.R, color.G, color.B).ToString();
                        Color  newColor = ColorPickerUtils.FromHex(colorHex);
                        markerSymbol.Color = new SolidColorBrush(newColor);
                    }
                    else
                    {
                        ESRI.ArcGIS.Client.Symbols.SimpleMarkerSymbol simpleMarkerSymbol = symbol as ESRI.ArcGIS.Client.Symbols.SimpleMarkerSymbol;
                        if (simpleMarkerSymbol != null)
                        {
                            byte currentAlpha = (byte)255;
                            if (simpleMarkerSymbol.Color != null)
                            {
                                currentAlpha = (byte)(255 * simpleMarkerSymbol.Color.Opacity);// Preserve current opacity of symbol color
                            }
                            string colorHex = Color.FromArgb(currentAlpha, color.R, color.G, color.B).ToString();
                            Color  newColor = ColorPickerUtils.FromHex(colorHex);
                            simpleMarkerSymbol.Color = new SolidColorBrush(newColor);
                        }
                        else
                        {
                            ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleMarkerSymbol sms = symbol as ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleMarkerSymbol;
                            if (sms != null)
                            {
                                byte currentAlpha = (byte)255;
                                if (sms.Color is SolidColorBrush)
                                {
                                    currentAlpha = (sms.Color as SolidColorBrush).Color.A;
                                }
                                else if (sms.Color != null)
                                {
                                    currentAlpha = (byte)(255 * sms.Color.Opacity);// Preserve current opacity of symbol color
                                }
                                string colorHex = Color.FromArgb(currentAlpha, color.R, color.G, color.B).ToString();
                                Color  newColor = ColorPickerUtils.FromHex(colorHex);
                                sms.Color = new SolidColorBrush(newColor);
                                if (sms.OutlineColor != null)
                                {
                                    sms.OutlineColor = new SolidColorBrush(newColor);
                                }
                            }
                        }
                    }
                }
            }
        }