diff --git a/src/Avalonia.Visuals/Media/Brush.cs b/src/Avalonia.Visuals/Media/Brush.cs
index 40ac24b605..abceb39961 100644
--- a/src/Avalonia.Visuals/Media/Brush.cs
+++ b/src/Avalonia.Visuals/Media/Brush.cs
@@ -34,26 +34,21 @@ namespace Avalonia.Media
/// The .
public static IBrush Parse(string s)
{
+ if (s == null) throw new ArgumentNullException(nameof(s));
+ if (s.Length == 0) throw new FormatException();
+
if (s[0] == '#')
{
return new SolidColorBrush(Color.Parse(s));
}
- else
- {
- var upper = s.ToUpperInvariant();
- var member = typeof(Brushes).GetTypeInfo().DeclaredProperties
- .FirstOrDefault(x => x.Name.ToUpperInvariant() == upper);
- if (member != null)
- {
- var brush = (ISolidColorBrush)member.GetValue(null);
- return new SolidColorBrush(brush.Color, brush.Opacity);
- }
- else
- {
- throw new FormatException($"Invalid brush string: '{s}'.");
- }
+ var brush = KnownColors.GetKnownBrush(s);
+ if (brush != null)
+ {
+ return brush;
}
+
+ throw new FormatException($"Invalid brush string: '{s}'.");
}
}
}
diff --git a/src/Avalonia.Visuals/Media/Brushes.cs b/src/Avalonia.Visuals/Media/Brushes.cs
index 4c89c97b49..83ff043397 100644
--- a/src/Avalonia.Visuals/Media/Brushes.cs
+++ b/src/Avalonia.Visuals/Media/Brushes.cs
@@ -1,8 +1,6 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
-using Avalonia.Media.Immutable;
-
namespace Avalonia.Media
{
///
@@ -10,857 +8,709 @@ namespace Avalonia.Media
///
public static class Brushes
{
- ///
- /// Initializes static members of the class.
- ///
- static Brushes()
- {
- AliceBlue = new ImmutableSolidColorBrush(Colors.AliceBlue);
- AntiqueWhite = new ImmutableSolidColorBrush(Colors.AntiqueWhite);
- Aqua = new ImmutableSolidColorBrush(Colors.Aqua);
- Aquamarine = new ImmutableSolidColorBrush(Colors.Aquamarine);
- Azure = new ImmutableSolidColorBrush(Colors.Azure);
- Beige = new ImmutableSolidColorBrush(Colors.Beige);
- Bisque = new ImmutableSolidColorBrush(Colors.Bisque);
- Black = new ImmutableSolidColorBrush(Colors.Black);
- BlanchedAlmond = new ImmutableSolidColorBrush(Colors.BlanchedAlmond);
- Blue = new ImmutableSolidColorBrush(Colors.Blue);
- BlueViolet = new ImmutableSolidColorBrush(Colors.BlueViolet);
- Brown = new ImmutableSolidColorBrush(Colors.Brown);
- BurlyWood = new ImmutableSolidColorBrush(Colors.BurlyWood);
- CadetBlue = new ImmutableSolidColorBrush(Colors.CadetBlue);
- Chartreuse = new ImmutableSolidColorBrush(Colors.Chartreuse);
- Chocolate = new ImmutableSolidColorBrush(Colors.Chocolate);
- Coral = new ImmutableSolidColorBrush(Colors.Coral);
- CornflowerBlue = new ImmutableSolidColorBrush(Colors.CornflowerBlue);
- Cornsilk = new ImmutableSolidColorBrush(Colors.Cornsilk);
- Crimson = new ImmutableSolidColorBrush(Colors.Crimson);
- Cyan = new ImmutableSolidColorBrush(Colors.Cyan);
- DarkBlue = new ImmutableSolidColorBrush(Colors.DarkBlue);
- DarkCyan = new ImmutableSolidColorBrush(Colors.DarkCyan);
- DarkGoldenrod = new ImmutableSolidColorBrush(Colors.DarkGoldenrod);
- DarkGray = new ImmutableSolidColorBrush(Colors.DarkGray);
- DarkGreen = new ImmutableSolidColorBrush(Colors.DarkGreen);
- DarkKhaki = new ImmutableSolidColorBrush(Colors.DarkKhaki);
- DarkMagenta = new ImmutableSolidColorBrush(Colors.DarkMagenta);
- DarkOliveGreen = new ImmutableSolidColorBrush(Colors.DarkOliveGreen);
- DarkOrange = new ImmutableSolidColorBrush(Colors.DarkOrange);
- DarkOrchid = new ImmutableSolidColorBrush(Colors.DarkOrchid);
- DarkRed = new ImmutableSolidColorBrush(Colors.DarkRed);
- DarkSalmon = new ImmutableSolidColorBrush(Colors.DarkSalmon);
- DarkSeaGreen = new ImmutableSolidColorBrush(Colors.DarkSeaGreen);
- DarkSlateBlue = new ImmutableSolidColorBrush(Colors.DarkSlateBlue);
- DarkSlateGray = new ImmutableSolidColorBrush(Colors.DarkSlateGray);
- DarkTurquoise = new ImmutableSolidColorBrush(Colors.DarkTurquoise);
- DarkViolet = new ImmutableSolidColorBrush(Colors.DarkViolet);
- DeepPink = new ImmutableSolidColorBrush(Colors.DeepPink);
- DeepSkyBlue = new ImmutableSolidColorBrush(Colors.DeepSkyBlue);
- DimGray = new ImmutableSolidColorBrush(Colors.DimGray);
- DodgerBlue = new ImmutableSolidColorBrush(Colors.DodgerBlue);
- Firebrick = new ImmutableSolidColorBrush(Colors.Firebrick);
- FloralWhite = new ImmutableSolidColorBrush(Colors.FloralWhite);
- ForestGreen = new ImmutableSolidColorBrush(Colors.ForestGreen);
- Fuchsia = new ImmutableSolidColorBrush(Colors.Fuchsia);
- Gainsboro = new ImmutableSolidColorBrush(Colors.Gainsboro);
- GhostWhite = new ImmutableSolidColorBrush(Colors.GhostWhite);
- Gold = new ImmutableSolidColorBrush(Colors.Gold);
- Goldenrod = new ImmutableSolidColorBrush(Colors.Goldenrod);
- Gray = new ImmutableSolidColorBrush(Colors.Gray);
- Green = new ImmutableSolidColorBrush(Colors.Green);
- GreenYellow = new ImmutableSolidColorBrush(Colors.GreenYellow);
- Honeydew = new ImmutableSolidColorBrush(Colors.Honeydew);
- HotPink = new ImmutableSolidColorBrush(Colors.HotPink);
- IndianRed = new ImmutableSolidColorBrush(Colors.IndianRed);
- Indigo = new ImmutableSolidColorBrush(Colors.Indigo);
- Ivory = new ImmutableSolidColorBrush(Colors.Ivory);
- Khaki = new ImmutableSolidColorBrush(Colors.Khaki);
- Lavender = new ImmutableSolidColorBrush(Colors.Lavender);
- LavenderBlush = new ImmutableSolidColorBrush(Colors.LavenderBlush);
- LawnGreen = new ImmutableSolidColorBrush(Colors.LawnGreen);
- LemonChiffon = new ImmutableSolidColorBrush(Colors.LemonChiffon);
- LightBlue = new ImmutableSolidColorBrush(Colors.LightBlue);
- LightCoral = new ImmutableSolidColorBrush(Colors.LightCoral);
- LightCyan = new ImmutableSolidColorBrush(Colors.LightCyan);
- LightGoldenrodYellow = new ImmutableSolidColorBrush(Colors.LightGoldenrodYellow);
- LightGray = new ImmutableSolidColorBrush(Colors.LightGray);
- LightGreen = new ImmutableSolidColorBrush(Colors.LightGreen);
- LightPink = new ImmutableSolidColorBrush(Colors.LightPink);
- LightSalmon = new ImmutableSolidColorBrush(Colors.LightSalmon);
- LightSeaGreen = new ImmutableSolidColorBrush(Colors.LightSeaGreen);
- LightSkyBlue = new ImmutableSolidColorBrush(Colors.LightSkyBlue);
- LightSlateGray = new ImmutableSolidColorBrush(Colors.LightSlateGray);
- LightSteelBlue = new ImmutableSolidColorBrush(Colors.LightSteelBlue);
- LightYellow = new ImmutableSolidColorBrush(Colors.LightYellow);
- Lime = new ImmutableSolidColorBrush(Colors.Lime);
- LimeGreen = new ImmutableSolidColorBrush(Colors.LimeGreen);
- Linen = new ImmutableSolidColorBrush(Colors.Linen);
- Magenta = new ImmutableSolidColorBrush(Colors.Magenta);
- Maroon = new ImmutableSolidColorBrush(Colors.Maroon);
- MediumAquamarine = new ImmutableSolidColorBrush(Colors.MediumAquamarine);
- MediumBlue = new ImmutableSolidColorBrush(Colors.MediumBlue);
- MediumOrchid = new ImmutableSolidColorBrush(Colors.MediumOrchid);
- MediumPurple = new ImmutableSolidColorBrush(Colors.MediumPurple);
- MediumSeaGreen = new ImmutableSolidColorBrush(Colors.MediumSeaGreen);
- MediumSlateBlue = new ImmutableSolidColorBrush(Colors.MediumSlateBlue);
- MediumSpringGreen = new ImmutableSolidColorBrush(Colors.MediumSpringGreen);
- MediumTurquoise = new ImmutableSolidColorBrush(Colors.MediumTurquoise);
- MediumVioletRed = new ImmutableSolidColorBrush(Colors.MediumVioletRed);
- MidnightBlue = new ImmutableSolidColorBrush(Colors.MidnightBlue);
- MintCream = new ImmutableSolidColorBrush(Colors.MintCream);
- MistyRose = new ImmutableSolidColorBrush(Colors.MistyRose);
- Moccasin = new ImmutableSolidColorBrush(Colors.Moccasin);
- NavajoWhite = new ImmutableSolidColorBrush(Colors.NavajoWhite);
- Navy = new ImmutableSolidColorBrush(Colors.Navy);
- OldLace = new ImmutableSolidColorBrush(Colors.OldLace);
- Olive = new ImmutableSolidColorBrush(Colors.Olive);
- OliveDrab = new ImmutableSolidColorBrush(Colors.OliveDrab);
- Orange = new ImmutableSolidColorBrush(Colors.Orange);
- OrangeRed = new ImmutableSolidColorBrush(Colors.OrangeRed);
- Orchid = new ImmutableSolidColorBrush(Colors.Orchid);
- PaleGoldenrod = new ImmutableSolidColorBrush(Colors.PaleGoldenrod);
- PaleGreen = new ImmutableSolidColorBrush(Colors.PaleGreen);
- PaleTurquoise = new ImmutableSolidColorBrush(Colors.PaleTurquoise);
- PaleVioletRed = new ImmutableSolidColorBrush(Colors.PaleVioletRed);
- PapayaWhip = new ImmutableSolidColorBrush(Colors.PapayaWhip);
- PeachPuff = new ImmutableSolidColorBrush(Colors.PeachPuff);
- Peru = new ImmutableSolidColorBrush(Colors.Peru);
- Pink = new ImmutableSolidColorBrush(Colors.Pink);
- Plum = new ImmutableSolidColorBrush(Colors.Plum);
- PowderBlue = new ImmutableSolidColorBrush(Colors.PowderBlue);
- Purple = new ImmutableSolidColorBrush(Colors.Purple);
- Red = new ImmutableSolidColorBrush(Colors.Red);
- RosyBrown = new ImmutableSolidColorBrush(Colors.RosyBrown);
- RoyalBlue = new ImmutableSolidColorBrush(Colors.RoyalBlue);
- SaddleBrown = new ImmutableSolidColorBrush(Colors.SaddleBrown);
- Salmon = new ImmutableSolidColorBrush(Colors.Salmon);
- SandyBrown = new ImmutableSolidColorBrush(Colors.SandyBrown);
- SeaGreen = new ImmutableSolidColorBrush(Colors.SeaGreen);
- SeaShell = new ImmutableSolidColorBrush(Colors.SeaShell);
- Sienna = new ImmutableSolidColorBrush(Colors.Sienna);
- Silver = new ImmutableSolidColorBrush(Colors.Silver);
- SkyBlue = new ImmutableSolidColorBrush(Colors.SkyBlue);
- SlateBlue = new ImmutableSolidColorBrush(Colors.SlateBlue);
- SlateGray = new ImmutableSolidColorBrush(Colors.SlateGray);
- Snow = new ImmutableSolidColorBrush(Colors.Snow);
- SpringGreen = new ImmutableSolidColorBrush(Colors.SpringGreen);
- SteelBlue = new ImmutableSolidColorBrush(Colors.SteelBlue);
- Tan = new ImmutableSolidColorBrush(Colors.Tan);
- Teal = new ImmutableSolidColorBrush(Colors.Teal);
- Thistle = new ImmutableSolidColorBrush(Colors.Thistle);
- Tomato = new ImmutableSolidColorBrush(Colors.Tomato);
- Transparent = new ImmutableSolidColorBrush(Colors.Transparent);
- Turquoise = new ImmutableSolidColorBrush(Colors.Turquoise);
- Violet = new ImmutableSolidColorBrush(Colors.Violet);
- Wheat = new ImmutableSolidColorBrush(Colors.Wheat);
- White = new ImmutableSolidColorBrush(Colors.White);
- WhiteSmoke = new ImmutableSolidColorBrush(Colors.WhiteSmoke);
- Yellow = new ImmutableSolidColorBrush(Colors.Yellow);
- YellowGreen = new ImmutableSolidColorBrush(Colors.YellowGreen);
- }
-
///
/// Gets an colored brush.
///
- public static ISolidColorBrush AliceBlue { get; private set; }
+ public static ISolidColorBrush AliceBlue => KnownColor.AliceBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush AntiqueWhite { get; private set; }
+ public static ISolidColorBrush AntiqueWhite => KnownColor.AntiqueWhite.ToBrush();
///
- /// Gets an colored brush.
+ /// Gets an colored brush.
///
- public static ISolidColorBrush Aqua { get; private set; }
+ public static ISolidColorBrush Aqua => KnownColor.Aqua.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Aquamarine { get; private set; }
+ public static ISolidColorBrush Aquamarine => KnownColor.Aquamarine.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Azure { get; private set; }
+ public static ISolidColorBrush Azure => KnownColor.Azure.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Beige { get; private set; }
+ public static ISolidColorBrush Beige => KnownColor.Beige.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Bisque { get; private set; }
+ public static ISolidColorBrush Bisque => KnownColor.Bisque.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Black { get; private set; }
+ public static ISolidColorBrush Black => KnownColor.Black.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush BlanchedAlmond { get; private set; }
+ public static ISolidColorBrush BlanchedAlmond => KnownColor.BlanchedAlmond.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Blue { get; private set; }
+ public static ISolidColorBrush Blue => KnownColor.Blue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush BlueViolet { get; private set; }
+ public static ISolidColorBrush BlueViolet => KnownColor.BlueViolet.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Brown { get; private set; }
+ public static ISolidColorBrush Brown => KnownColor.Brown.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush BurlyWood { get; private set; }
+ public static ISolidColorBrush BurlyWood => KnownColor.BurlyWood.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush CadetBlue { get; private set; }
+ public static ISolidColorBrush CadetBlue => KnownColor.CadetBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Chartreuse { get; private set; }
+ public static ISolidColorBrush Chartreuse => KnownColor.Chartreuse.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Chocolate { get; private set; }
+ public static ISolidColorBrush Chocolate => KnownColor.Chocolate.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Coral { get; private set; }
+ public static ISolidColorBrush Coral => KnownColor.Coral.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush CornflowerBlue { get; private set; }
+ public static ISolidColorBrush CornflowerBlue => KnownColor.CornflowerBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Cornsilk { get; private set; }
+ public static ISolidColorBrush Cornsilk => KnownColor.Cornsilk.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Crimson { get; private set; }
+ public static ISolidColorBrush Crimson => KnownColor.Crimson.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Cyan { get; private set; }
+ public static ISolidColorBrush Cyan => KnownColor.Cyan.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkBlue { get; private set; }
+ public static ISolidColorBrush DarkBlue => KnownColor.DarkBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkCyan { get; private set; }
+ public static ISolidColorBrush DarkCyan => KnownColor.DarkCyan.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkGoldenrod { get; private set; }
+ public static ISolidColorBrush DarkGoldenrod => KnownColor.DarkGoldenrod.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkGray { get; private set; }
+ public static ISolidColorBrush DarkGray => KnownColor.DarkGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkGreen { get; private set; }
+ public static ISolidColorBrush DarkGreen => KnownColor.DarkGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkKhaki { get; private set; }
+ public static ISolidColorBrush DarkKhaki => KnownColor.DarkKhaki.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkMagenta { get; private set; }
+ public static ISolidColorBrush DarkMagenta => KnownColor.DarkMagenta.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkOliveGreen { get; private set; }
+ public static ISolidColorBrush DarkOliveGreen => KnownColor.DarkOliveGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkOrange { get; private set; }
+ public static ISolidColorBrush DarkOrange => KnownColor.DarkOrange.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkOrchid { get; private set; }
+ public static ISolidColorBrush DarkOrchid => KnownColor.DarkOrchid.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkRed { get; private set; }
+ public static ISolidColorBrush DarkRed => KnownColor.DarkRed.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkSalmon { get; private set; }
+ public static ISolidColorBrush DarkSalmon => KnownColor.DarkSalmon.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkSeaGreen { get; private set; }
+ public static ISolidColorBrush DarkSeaGreen => KnownColor.DarkSeaGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkSlateBlue { get; private set; }
+ public static ISolidColorBrush DarkSlateBlue => KnownColor.DarkSlateBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkSlateGray { get; private set; }
+ public static ISolidColorBrush DarkSlateGray => KnownColor.DarkSlateGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkTurquoise { get; private set; }
+ public static ISolidColorBrush DarkTurquoise => KnownColor.DarkTurquoise.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DarkViolet { get; private set; }
+ public static ISolidColorBrush DarkViolet => KnownColor.DarkViolet.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DeepPink { get; private set; }
+ public static ISolidColorBrush DeepPink => KnownColor.DeepPink.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DeepSkyBlue { get; private set; }
+ public static ISolidColorBrush DeepSkyBlue => KnownColor.DeepSkyBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DimGray { get; private set; }
+ public static ISolidColorBrush DimGray => KnownColor.DimGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush DodgerBlue { get; private set; }
+ public static ISolidColorBrush DodgerBlue => KnownColor.DodgerBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Firebrick { get; private set; }
+ public static ISolidColorBrush Firebrick => KnownColor.Firebrick.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush FloralWhite { get; private set; }
+ public static ISolidColorBrush FloralWhite => KnownColor.FloralWhite.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush ForestGreen { get; private set; }
+ public static ISolidColorBrush ForestGreen => KnownColor.ForestGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Fuchsia { get; private set; }
+ public static ISolidColorBrush Fuchsia => KnownColor.Fuchsia.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Gainsboro { get; private set; }
+ public static ISolidColorBrush Gainsboro => KnownColor.Gainsboro.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush GhostWhite { get; private set; }
+ public static ISolidColorBrush GhostWhite => KnownColor.GhostWhite.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Gold { get; private set; }
+ public static ISolidColorBrush Gold => KnownColor.Gold.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Goldenrod { get; private set; }
+ public static ISolidColorBrush Goldenrod => KnownColor.Goldenrod.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Gray { get; private set; }
+ public static ISolidColorBrush Gray => KnownColor.Gray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Green { get; private set; }
+ public static ISolidColorBrush Green => KnownColor.Green.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush GreenYellow { get; private set; }
+ public static ISolidColorBrush GreenYellow => KnownColor.GreenYellow.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Honeydew { get; private set; }
+ public static ISolidColorBrush Honeydew => KnownColor.Honeydew.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush HotPink { get; private set; }
+ public static ISolidColorBrush HotPink => KnownColor.HotPink.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush IndianRed { get; private set; }
+ public static ISolidColorBrush IndianRed => KnownColor.IndianRed.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Indigo { get; private set; }
+ public static ISolidColorBrush Indigo => KnownColor.Indigo.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Ivory { get; private set; }
+ public static ISolidColorBrush Ivory => KnownColor.Ivory.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Khaki { get; private set; }
+ public static ISolidColorBrush Khaki => KnownColor.Khaki.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Lavender { get; private set; }
+ public static ISolidColorBrush Lavender => KnownColor.Lavender.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LavenderBlush { get; private set; }
+ public static ISolidColorBrush LavenderBlush => KnownColor.LavenderBlush.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LawnGreen { get; private set; }
+ public static ISolidColorBrush LawnGreen => KnownColor.LawnGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LemonChiffon { get; private set; }
+ public static ISolidColorBrush LemonChiffon => KnownColor.LemonChiffon.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightBlue { get; private set; }
+ public static ISolidColorBrush LightBlue => KnownColor.LightBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightCoral { get; private set; }
+ public static ISolidColorBrush LightCoral => KnownColor.LightCoral.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightCyan { get; private set; }
+ public static ISolidColorBrush LightCyan => KnownColor.LightCyan.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightGoldenrodYellow { get; private set; }
+ public static ISolidColorBrush LightGoldenrodYellow => KnownColor.LightGoldenrodYellow.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightGray { get; private set; }
+ public static ISolidColorBrush LightGray => KnownColor.LightGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightGreen { get; private set; }
+ public static ISolidColorBrush LightGreen => KnownColor.LightGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightPink { get; private set; }
+ public static ISolidColorBrush LightPink => KnownColor.LightPink.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightSalmon { get; private set; }
+ public static ISolidColorBrush LightSalmon => KnownColor.LightSalmon.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightSeaGreen { get; private set; }
+ public static ISolidColorBrush LightSeaGreen => KnownColor.LightSeaGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightSkyBlue { get; private set; }
+ public static ISolidColorBrush LightSkyBlue => KnownColor.LightSkyBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightSlateGray { get; private set; }
+ public static ISolidColorBrush LightSlateGray => KnownColor.LightSlateGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightSteelBlue { get; private set; }
+ public static ISolidColorBrush LightSteelBlue => KnownColor.LightSteelBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LightYellow { get; private set; }
+ public static ISolidColorBrush LightYellow => KnownColor.LightYellow.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Lime { get; private set; }
+ public static ISolidColorBrush Lime => KnownColor.Lime.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush LimeGreen { get; private set; }
+ public static ISolidColorBrush LimeGreen => KnownColor.LimeGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Linen { get; private set; }
+ public static ISolidColorBrush Linen => KnownColor.Linen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Magenta { get; private set; }
+ public static ISolidColorBrush Magenta => KnownColor.Magenta.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Maroon { get; private set; }
+ public static ISolidColorBrush Maroon => KnownColor.Maroon.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumAquamarine { get; private set; }
+ public static ISolidColorBrush MediumAquamarine => KnownColor.MediumAquamarine.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumBlue { get; private set; }
+ public static ISolidColorBrush MediumBlue => KnownColor.MediumBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumOrchid { get; private set; }
+ public static ISolidColorBrush MediumOrchid => KnownColor.MediumOrchid.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumPurple { get; private set; }
+ public static ISolidColorBrush MediumPurple => KnownColor.MediumPurple.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumSeaGreen { get; private set; }
+ public static ISolidColorBrush MediumSeaGreen => KnownColor.MediumSeaGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumSlateBlue { get; private set; }
+ public static ISolidColorBrush MediumSlateBlue => KnownColor.MediumSlateBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumSpringGreen { get; private set; }
+ public static ISolidColorBrush MediumSpringGreen => KnownColor.MediumSpringGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumTurquoise { get; private set; }
+ public static ISolidColorBrush MediumTurquoise => KnownColor.MediumTurquoise.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MediumVioletRed { get; private set; }
+ public static ISolidColorBrush MediumVioletRed => KnownColor.MediumVioletRed.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MidnightBlue { get; private set; }
+ public static ISolidColorBrush MidnightBlue => KnownColor.MidnightBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MintCream { get; private set; }
+ public static ISolidColorBrush MintCream => KnownColor.MintCream.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush MistyRose { get; private set; }
+ public static ISolidColorBrush MistyRose => KnownColor.MistyRose.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Moccasin { get; private set; }
+ public static ISolidColorBrush Moccasin => KnownColor.Moccasin.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush NavajoWhite { get; private set; }
+ public static ISolidColorBrush NavajoWhite => KnownColor.NavajoWhite.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Navy { get; private set; }
+ public static ISolidColorBrush Navy => KnownColor.Navy.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush OldLace { get; private set; }
+ public static ISolidColorBrush OldLace => KnownColor.OldLace.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Olive { get; private set; }
+ public static ISolidColorBrush Olive => KnownColor.Olive.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush OliveDrab { get; private set; }
+ public static ISolidColorBrush OliveDrab => KnownColor.OliveDrab.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Orange { get; private set; }
+ public static ISolidColorBrush Orange => KnownColor.Orange.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush OrangeRed { get; private set; }
+ public static ISolidColorBrush OrangeRed => KnownColor.OrangeRed.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Orchid { get; private set; }
+ public static ISolidColorBrush Orchid => KnownColor.Orchid.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PaleGoldenrod { get; private set; }
+ public static ISolidColorBrush PaleGoldenrod => KnownColor.PaleGoldenrod.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PaleGreen { get; private set; }
+ public static ISolidColorBrush PaleGreen => KnownColor.PaleGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PaleTurquoise { get; private set; }
+ public static ISolidColorBrush PaleTurquoise => KnownColor.PaleTurquoise.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PaleVioletRed { get; private set; }
+ public static ISolidColorBrush PaleVioletRed => KnownColor.PaleVioletRed.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PapayaWhip { get; private set; }
+ public static ISolidColorBrush PapayaWhip => KnownColor.PapayaWhip.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PeachPuff { get; private set; }
+ public static ISolidColorBrush PeachPuff => KnownColor.PeachPuff.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Peru { get; private set; }
+ public static ISolidColorBrush Peru => KnownColor.Peru.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Pink { get; private set; }
+ public static ISolidColorBrush Pink => KnownColor.Pink.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Plum { get; private set; }
+ public static ISolidColorBrush Plum => KnownColor.Plum.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush PowderBlue { get; private set; }
+ public static ISolidColorBrush PowderBlue => KnownColor.PowderBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Purple { get; private set; }
+ public static ISolidColorBrush Purple => KnownColor.Purple.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Red { get; private set; }
+ public static ISolidColorBrush Red => KnownColor.Red.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush RosyBrown { get; private set; }
+ public static ISolidColorBrush RosyBrown => KnownColor.RosyBrown.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush RoyalBlue { get; private set; }
+ public static ISolidColorBrush RoyalBlue => KnownColor.RoyalBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SaddleBrown { get; private set; }
+ public static ISolidColorBrush SaddleBrown => KnownColor.SaddleBrown.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Salmon { get; private set; }
+ public static ISolidColorBrush Salmon => KnownColor.Salmon.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SandyBrown { get; private set; }
+ public static ISolidColorBrush SandyBrown => KnownColor.SandyBrown.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SeaGreen { get; private set; }
+ public static ISolidColorBrush SeaGreen => KnownColor.SeaGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SeaShell { get; private set; }
+ public static ISolidColorBrush SeaShell => KnownColor.SeaShell.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Sienna { get; private set; }
+ public static ISolidColorBrush Sienna => KnownColor.Sienna.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Silver { get; private set; }
+ public static ISolidColorBrush Silver => KnownColor.Silver.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SkyBlue { get; private set; }
+ public static ISolidColorBrush SkyBlue => KnownColor.SkyBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SlateBlue { get; private set; }
+ public static ISolidColorBrush SlateBlue => KnownColor.SlateBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SlateGray { get; private set; }
+ public static ISolidColorBrush SlateGray => KnownColor.SlateGray.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Snow { get; private set; }
+ public static ISolidColorBrush Snow => KnownColor.Snow.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SpringGreen { get; private set; }
+ public static ISolidColorBrush SpringGreen => KnownColor.SpringGreen.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush SteelBlue { get; private set; }
+ public static ISolidColorBrush SteelBlue => KnownColor.SteelBlue.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Tan { get; private set; }
+ public static ISolidColorBrush Tan => KnownColor.Tan.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Teal { get; private set; }
+ public static ISolidColorBrush Teal => KnownColor.Teal.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Thistle { get; private set; }
+ public static ISolidColorBrush Thistle => KnownColor.Thistle.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Tomato { get; private set; }
+ public static ISolidColorBrush Tomato => KnownColor.Tomato.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Transparent { get; private set; }
+ public static ISolidColorBrush Transparent => KnownColor.Transparent.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Turquoise { get; private set; }
+ public static ISolidColorBrush Turquoise => KnownColor.Turquoise.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Violet { get; private set; }
+ public static ISolidColorBrush Violet => KnownColor.Violet.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Wheat { get; private set; }
+ public static ISolidColorBrush Wheat => KnownColor.Wheat.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush White { get; private set; }
+ public static ISolidColorBrush White => KnownColor.White.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush WhiteSmoke { get; private set; }
+ public static ISolidColorBrush WhiteSmoke => KnownColor.WhiteSmoke.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush Yellow { get; private set; }
+ public static ISolidColorBrush Yellow => KnownColor.Yellow.ToBrush();
///
/// Gets an colored brush.
///
- public static ISolidColorBrush YellowGreen { get; private set; }
+ public static ISolidColorBrush YellowGreen => KnownColor.YellowGreen.ToBrush();
}
}
diff --git a/src/Avalonia.Visuals/Media/Color.cs b/src/Avalonia.Visuals/Media/Color.cs
index cbf5a86fd6..82cc19347a 100644
--- a/src/Avalonia.Visuals/Media/Color.cs
+++ b/src/Avalonia.Visuals/Media/Color.cs
@@ -88,6 +88,9 @@ namespace Avalonia.Media
/// The .
public static Color Parse(string s)
{
+ if (s == null) throw new ArgumentNullException(nameof(s));
+ if (s.Length == 0) throw new FormatException();
+
if (s[0] == '#')
{
var or = 0u;
@@ -103,21 +106,15 @@ namespace Avalonia.Media
return FromUInt32(uint.Parse(s.Substring(1), NumberStyles.HexNumber, CultureInfo.InvariantCulture) | or);
}
- else
- {
- var upper = s.ToUpperInvariant();
- var member = typeof(Colors).GetTypeInfo().DeclaredProperties
- .FirstOrDefault(x => x.Name.ToUpperInvariant() == upper);
- if (member != null)
- {
- return (Color)member.GetValue(null);
- }
- else
- {
- throw new FormatException($"Invalid color string: '{s}'.");
- }
+ var knownColor = KnownColors.GetKnownColor(s);
+
+ if (knownColor != KnownColor.None)
+ {
+ return knownColor.ToColor();
}
+
+ throw new FormatException($"Invalid color string: '{s}'.");
}
///
@@ -128,8 +125,8 @@ namespace Avalonia.Media
///
public override string ToString()
{
- uint rgb = ((uint)A << 24) | ((uint)R << 16) | ((uint)G << 8) | (uint)B;
- return $"#{rgb:x8}";
+ uint rgb = ToUint32();
+ return KnownColors.GetKnownColorName(rgb) ?? $"#{rgb:x8}";
}
///
diff --git a/src/Avalonia.Visuals/Media/Colors.cs b/src/Avalonia.Visuals/Media/Colors.cs
index 7296d7dd39..1067cf66aa 100644
--- a/src/Avalonia.Visuals/Media/Colors.cs
+++ b/src/Avalonia.Visuals/Media/Colors.cs
@@ -1,6 +1,8 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
+using System.Linq;
+
namespace Avalonia.Media
{
///
@@ -11,706 +13,706 @@ namespace Avalonia.Media
///
/// Gets a color with an ARGB value of #fff0f8ff.
///
- public static Color AliceBlue => Color.FromUInt32(0xfff0f8ff);
+ public static Color AliceBlue => KnownColor.AliceBlue.ToColor();
///
/// Gets a color with an ARGB value of #fffaebd7.
///
- public static Color AntiqueWhite => Color.FromUInt32(0xfffaebd7);
+ public static Color AntiqueWhite => KnownColor.AntiqueWhite.ToColor();
///
/// Gets a color with an ARGB value of #ff00ffff.
///
- public static Color Aqua => Color.FromUInt32(0xff00ffff);
+ public static Color Aqua => KnownColor.Aqua.ToColor();
///
/// Gets a color with an ARGB value of #ff7fffd4.
///
- public static Color Aquamarine => Color.FromUInt32(0xff7fffd4);
+ public static Color Aquamarine => KnownColor.Aquamarine.ToColor();
///
/// Gets a color with an ARGB value of #fff0ffff.
///
- public static Color Azure => Color.FromUInt32(0xfff0ffff);
+ public static Color Azure => KnownColor.Azure.ToColor();
///
/// Gets a color with an ARGB value of #fff5f5dc.
///
- public static Color Beige => Color.FromUInt32(0xfff5f5dc);
+ public static Color Beige => KnownColor.Beige.ToColor();
///
/// Gets a color with an ARGB value of #ffffe4c4.
///
- public static Color Bisque => Color.FromUInt32(0xffffe4c4);
+ public static Color Bisque => KnownColor.Bisque.ToColor();
///
/// Gets a color with an ARGB value of #ff000000.
///
- public static Color Black => Color.FromUInt32(0xff000000);
+ public static Color Black => KnownColor.Black.ToColor();
///
/// Gets a color with an ARGB value of #ffffebcd.
///
- public static Color BlanchedAlmond => Color.FromUInt32(0xffffebcd);
+ public static Color BlanchedAlmond => KnownColor.BlanchedAlmond.ToColor();
///
/// Gets a color with an ARGB value of #ff0000ff.
///
- public static Color Blue => Color.FromUInt32(0xff0000ff);
+ public static Color Blue => KnownColor.Blue.ToColor();
///
/// Gets a color with an ARGB value of #ff8a2be2.
///
- public static Color BlueViolet => Color.FromUInt32(0xff8a2be2);
+ public static Color BlueViolet => KnownColor.BlueViolet.ToColor();
///
/// Gets a color with an ARGB value of #ffa52a2a.
///
- public static Color Brown => Color.FromUInt32(0xffa52a2a);
+ public static Color Brown => KnownColor.Brown.ToColor();
///
/// Gets a color with an ARGB value of #ffdeb887.
///
- public static Color BurlyWood => Color.FromUInt32(0xffdeb887);
+ public static Color BurlyWood => KnownColor.BurlyWood.ToColor();
///
/// Gets a color with an ARGB value of #ff5f9ea0.
///
- public static Color CadetBlue => Color.FromUInt32(0xff5f9ea0);
+ public static Color CadetBlue => KnownColor.CadetBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff7fff00.
///
- public static Color Chartreuse => Color.FromUInt32(0xff7fff00);
+ public static Color Chartreuse => KnownColor.Chartreuse.ToColor();
///
/// Gets a color with an ARGB value of #ffd2691e.
///
- public static Color Chocolate => Color.FromUInt32(0xffd2691e);
+ public static Color Chocolate => KnownColor.Chocolate.ToColor();
///
/// Gets a color with an ARGB value of #ffff7f50.
///
- public static Color Coral => Color.FromUInt32(0xffff7f50);
+ public static Color Coral => KnownColor.Coral.ToColor();
///
/// Gets a color with an ARGB value of #ff6495ed.
///
- public static Color CornflowerBlue => Color.FromUInt32(0xff6495ed);
+ public static Color CornflowerBlue => KnownColor.CornflowerBlue.ToColor();
///
/// Gets a color with an ARGB value of #fffff8dc.
///
- public static Color Cornsilk => Color.FromUInt32(0xfffff8dc);
+ public static Color Cornsilk => KnownColor.Cornsilk.ToColor();
///
/// Gets a color with an ARGB value of #ffdc143c.
///
- public static Color Crimson => Color.FromUInt32(0xffdc143c);
+ public static Color Crimson => KnownColor.Crimson.ToColor();
///
/// Gets a color with an ARGB value of #ff00ffff.
///
- public static Color Cyan => Color.FromUInt32(0xff00ffff);
+ public static Color Cyan => KnownColor.Cyan.ToColor();
///
/// Gets a color with an ARGB value of #ff00008b.
///
- public static Color DarkBlue => Color.FromUInt32(0xff00008b);
+ public static Color DarkBlue => KnownColor.DarkBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff008b8b.
///
- public static Color DarkCyan => Color.FromUInt32(0xff008b8b);
+ public static Color DarkCyan => KnownColor.DarkCyan.ToColor();
///
/// Gets a color with an ARGB value of #ffb8860b.
///
- public static Color DarkGoldenrod => Color.FromUInt32(0xffb8860b);
+ public static Color DarkGoldenrod => KnownColor.DarkGoldenrod.ToColor();
///
/// Gets a color with an ARGB value of #ffa9a9a9.
///
- public static Color DarkGray => Color.FromUInt32(0xffa9a9a9);
+ public static Color DarkGray => KnownColor.DarkGray.ToColor();
///
/// Gets a color with an ARGB value of #ff006400.
///
- public static Color DarkGreen => Color.FromUInt32(0xff006400);
+ public static Color DarkGreen => KnownColor.DarkGreen.ToColor();
///
/// Gets a color with an ARGB value of #ffbdb76b.
///
- public static Color DarkKhaki => Color.FromUInt32(0xffbdb76b);
+ public static Color DarkKhaki => KnownColor.DarkKhaki.ToColor();
///
/// Gets a color with an ARGB value of #ff8b008b.
///
- public static Color DarkMagenta => Color.FromUInt32(0xff8b008b);
+ public static Color DarkMagenta => KnownColor.DarkMagenta.ToColor();
///
/// Gets a color with an ARGB value of #ff556b2f.
///
- public static Color DarkOliveGreen => Color.FromUInt32(0xff556b2f);
+ public static Color DarkOliveGreen => KnownColor.DarkOliveGreen.ToColor();
///
/// Gets a color with an ARGB value of #ffff8c00.
///
- public static Color DarkOrange => Color.FromUInt32(0xffff8c00);
+ public static Color DarkOrange => KnownColor.DarkOrange.ToColor();
///
/// Gets a color with an ARGB value of #ff9932cc.
///
- public static Color DarkOrchid => Color.FromUInt32(0xff9932cc);
+ public static Color DarkOrchid => KnownColor.DarkOrchid.ToColor();
///
/// Gets a color with an ARGB value of #ff8b0000.
///
- public static Color DarkRed => Color.FromUInt32(0xff8b0000);
+ public static Color DarkRed => KnownColor.DarkRed.ToColor();
///
/// Gets a color with an ARGB value of #ffe9967a.
///
- public static Color DarkSalmon => Color.FromUInt32(0xffe9967a);
+ public static Color DarkSalmon => KnownColor.DarkSalmon.ToColor();
///
/// Gets a color with an ARGB value of #ff8fbc8f.
///
- public static Color DarkSeaGreen => Color.FromUInt32(0xff8fbc8f);
+ public static Color DarkSeaGreen => KnownColor.DarkSeaGreen.ToColor();
///
/// Gets a color with an ARGB value of #ff483d8b.
///
- public static Color DarkSlateBlue => Color.FromUInt32(0xff483d8b);
+ public static Color DarkSlateBlue => KnownColor.DarkSlateBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff2f4f4f.
///
- public static Color DarkSlateGray => Color.FromUInt32(0xff2f4f4f);
+ public static Color DarkSlateGray => KnownColor.DarkSlateGray.ToColor();
///
/// Gets a color with an ARGB value of #ff00ced1.
///
- public static Color DarkTurquoise => Color.FromUInt32(0xff00ced1);
+ public static Color DarkTurquoise => KnownColor.DarkTurquoise.ToColor();
///
/// Gets a color with an ARGB value of #ff9400d3.
///
- public static Color DarkViolet => Color.FromUInt32(0xff9400d3);
+ public static Color DarkViolet => KnownColor.DarkViolet.ToColor();
///
/// Gets a color with an ARGB value of #ffff1493.
///
- public static Color DeepPink => Color.FromUInt32(0xffff1493);
+ public static Color DeepPink => KnownColor.DeepPink.ToColor();
///
/// Gets a color with an ARGB value of #ff00bfff.
///
- public static Color DeepSkyBlue => Color.FromUInt32(0xff00bfff);
+ public static Color DeepSkyBlue => KnownColor.DeepSkyBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff696969.
///
- public static Color DimGray => Color.FromUInt32(0xff696969);
+ public static Color DimGray => KnownColor.DimGray.ToColor();
///
/// Gets a color with an ARGB value of #ff1e90ff.
///
- public static Color DodgerBlue => Color.FromUInt32(0xff1e90ff);
+ public static Color DodgerBlue => KnownColor.DodgerBlue.ToColor();
///
/// Gets a color with an ARGB value of #ffb22222.
///
- public static Color Firebrick => Color.FromUInt32(0xffb22222);
+ public static Color Firebrick => KnownColor.Firebrick.ToColor();
///
/// Gets a color with an ARGB value of #fffffaf0.
///
- public static Color FloralWhite => Color.FromUInt32(0xfffffaf0);
+ public static Color FloralWhite => KnownColor.FloralWhite.ToColor();
///
/// Gets a color with an ARGB value of #ff228b22.
///
- public static Color ForestGreen => Color.FromUInt32(0xff228b22);
+ public static Color ForestGreen => KnownColor.ForestGreen.ToColor();
///
/// Gets a color with an ARGB value of #ffff00ff.
///
- public static Color Fuchsia => Color.FromUInt32(0xffff00ff);
+ public static Color Fuchsia => KnownColor.Fuchsia.ToColor();
///
/// Gets a color with an ARGB value of #ffdcdcdc.
///
- public static Color Gainsboro => Color.FromUInt32(0xffdcdcdc);
+ public static Color Gainsboro => KnownColor.Gainsboro.ToColor();
///
/// Gets a color with an ARGB value of #fff8f8ff.
///
- public static Color GhostWhite => Color.FromUInt32(0xfff8f8ff);
+ public static Color GhostWhite => KnownColor.GhostWhite.ToColor();
///
/// Gets a color with an ARGB value of #ffffd700.
///
- public static Color Gold => Color.FromUInt32(0xffffd700);
+ public static Color Gold => KnownColor.Gold.ToColor();
///
/// Gets a color with an ARGB value of #ffdaa520.
///
- public static Color Goldenrod => Color.FromUInt32(0xffdaa520);
+ public static Color Goldenrod => KnownColor.Goldenrod.ToColor();
///
/// Gets a color with an ARGB value of #ff808080.
///
- public static Color Gray => Color.FromUInt32(0xff808080);
+ public static Color Gray => KnownColor.Gray.ToColor();
///
/// Gets a color with an ARGB value of #ff008000.
///
- public static Color Green => Color.FromUInt32(0xff008000);
+ public static Color Green => KnownColor.Green.ToColor();
///
/// Gets a color with an ARGB value of #ffadff2f.
///
- public static Color GreenYellow => Color.FromUInt32(0xffadff2f);
+ public static Color GreenYellow => KnownColor.GreenYellow.ToColor();
///
/// Gets a color with an ARGB value of #fff0fff0.
///
- public static Color Honeydew => Color.FromUInt32(0xfff0fff0);
+ public static Color Honeydew => KnownColor.Honeydew.ToColor();
///
/// Gets a color with an ARGB value of #ffff69b4.
///
- public static Color HotPink => Color.FromUInt32(0xffff69b4);
+ public static Color HotPink => KnownColor.HotPink.ToColor();
///
/// Gets a color with an ARGB value of #ffcd5c5c.
///
- public static Color IndianRed => Color.FromUInt32(0xffcd5c5c);
+ public static Color IndianRed => KnownColor.IndianRed.ToColor();
///
/// Gets a color with an ARGB value of #ff4b0082.
///
- public static Color Indigo => Color.FromUInt32(0xff4b0082);
+ public static Color Indigo => KnownColor.Indigo.ToColor();
///
/// Gets a color with an ARGB value of #fffffff0.
///
- public static Color Ivory => Color.FromUInt32(0xfffffff0);
+ public static Color Ivory => KnownColor.Ivory.ToColor();
///
/// Gets a color with an ARGB value of #fff0e68c.
///
- public static Color Khaki => Color.FromUInt32(0xfff0e68c);
+ public static Color Khaki => KnownColor.Khaki.ToColor();
///
/// Gets a color with an ARGB value of #ffe6e6fa.
///
- public static Color Lavender => Color.FromUInt32(0xffe6e6fa);
+ public static Color Lavender => KnownColor.Lavender.ToColor();
///
/// Gets a color with an ARGB value of #fffff0f5.
///
- public static Color LavenderBlush => Color.FromUInt32(0xfffff0f5);
+ public static Color LavenderBlush => KnownColor.LavenderBlush.ToColor();
///
/// Gets a color with an ARGB value of #ff7cfc00.
///
- public static Color LawnGreen => Color.FromUInt32(0xff7cfc00);
+ public static Color LawnGreen => KnownColor.LawnGreen.ToColor();
///
/// Gets a color with an ARGB value of #fffffacd.
///
- public static Color LemonChiffon => Color.FromUInt32(0xfffffacd);
+ public static Color LemonChiffon => KnownColor.LemonChiffon.ToColor();
///
/// Gets a color with an ARGB value of #ffadd8e6.
///
- public static Color LightBlue => Color.FromUInt32(0xffadd8e6);
+ public static Color LightBlue => KnownColor.LightBlue.ToColor();
///
/// Gets a color with an ARGB value of #fff08080.
///
- public static Color LightCoral => Color.FromUInt32(0xfff08080);
+ public static Color LightCoral => KnownColor.LightCoral.ToColor();
///
/// Gets a color with an ARGB value of #ffe0ffff.
///
- public static Color LightCyan => Color.FromUInt32(0xffe0ffff);
+ public static Color LightCyan => KnownColor.LightCyan.ToColor();
///
/// Gets a color with an ARGB value of #fffafad2.
///
- public static Color LightGoldenrodYellow => Color.FromUInt32(0xfffafad2);
+ public static Color LightGoldenrodYellow => KnownColor.LightGoldenrodYellow.ToColor();
///
/// Gets a color with an ARGB value of #ffd3d3d3.
///
- public static Color LightGray => Color.FromUInt32(0xffd3d3d3);
+ public static Color LightGray => KnownColor.LightGray.ToColor();
///
/// Gets a color with an ARGB value of #ff90ee90.
///
- public static Color LightGreen => Color.FromUInt32(0xff90ee90);
+ public static Color LightGreen => KnownColor.LightGreen.ToColor();
///
/// Gets a color with an ARGB value of #ffffb6c1.
///
- public static Color LightPink => Color.FromUInt32(0xffffb6c1);
+ public static Color LightPink => KnownColor.LightPink.ToColor();
///
/// Gets a color with an ARGB value of #ffffa07a.
///
- public static Color LightSalmon => Color.FromUInt32(0xffffa07a);
+ public static Color LightSalmon => KnownColor.LightSalmon.ToColor();
///
/// Gets a color with an ARGB value of #ff20b2aa.
///
- public static Color LightSeaGreen => Color.FromUInt32(0xff20b2aa);
+ public static Color LightSeaGreen => KnownColor.LightSeaGreen.ToColor();
///
/// Gets a color with an ARGB value of #ff87cefa.
///
- public static Color LightSkyBlue => Color.FromUInt32(0xff87cefa);
+ public static Color LightSkyBlue => KnownColor.LightSkyBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff778899.
///
- public static Color LightSlateGray => Color.FromUInt32(0xff778899);
+ public static Color LightSlateGray => KnownColor.LightSlateGray.ToColor();
///
/// Gets a color with an ARGB value of #ffb0c4de.
///
- public static Color LightSteelBlue => Color.FromUInt32(0xffb0c4de);
+ public static Color LightSteelBlue => KnownColor.LightSteelBlue.ToColor();
///
/// Gets a color with an ARGB value of #ffffffe0.
///
- public static Color LightYellow => Color.FromUInt32(0xffffffe0);
+ public static Color LightYellow => KnownColor.LightYellow.ToColor();
///
/// Gets a color with an ARGB value of #ff00ff00.
///
- public static Color Lime => Color.FromUInt32(0xff00ff00);
+ public static Color Lime => KnownColor.Lime.ToColor();
///
/// Gets a color with an ARGB value of #ff32cd32.
///
- public static Color LimeGreen => Color.FromUInt32(0xff32cd32);
+ public static Color LimeGreen => KnownColor.LimeGreen.ToColor();
///
/// Gets a color with an ARGB value of #fffaf0e6.
///
- public static Color Linen => Color.FromUInt32(0xfffaf0e6);
+ public static Color Linen => KnownColor.Linen.ToColor();
///
/// Gets a color with an ARGB value of #ffff00ff.
///
- public static Color Magenta => Color.FromUInt32(0xffff00ff);
+ public static Color Magenta => KnownColor.Magenta.ToColor();
///
/// Gets a color with an ARGB value of #ff800000.
///
- public static Color Maroon => Color.FromUInt32(0xff800000);
+ public static Color Maroon => KnownColor.Maroon.ToColor();
///
/// Gets a color with an ARGB value of #ff66cdaa.
///
- public static Color MediumAquamarine => Color.FromUInt32(0xff66cdaa);
+ public static Color MediumAquamarine => KnownColor.MediumAquamarine.ToColor();
///
/// Gets a color with an ARGB value of #ff0000cd.
///
- public static Color MediumBlue => Color.FromUInt32(0xff0000cd);
+ public static Color MediumBlue => KnownColor.MediumBlue.ToColor();
///
/// Gets a color with an ARGB value of #ffba55d3.
///
- public static Color MediumOrchid => Color.FromUInt32(0xffba55d3);
+ public static Color MediumOrchid => KnownColor.MediumOrchid.ToColor();
///
/// Gets a color with an ARGB value of #ff9370db.
///
- public static Color MediumPurple => Color.FromUInt32(0xff9370db);
+ public static Color MediumPurple => KnownColor.MediumPurple.ToColor();
///
/// Gets a color with an ARGB value of #ff3cb371.
///
- public static Color MediumSeaGreen => Color.FromUInt32(0xff3cb371);
+ public static Color MediumSeaGreen => KnownColor.MediumSeaGreen.ToColor();
///
/// Gets a color with an ARGB value of #ff7b68ee.
///
- public static Color MediumSlateBlue => Color.FromUInt32(0xff7b68ee);
+ public static Color MediumSlateBlue => KnownColor.MediumSlateBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff00fa9a.
///
- public static Color MediumSpringGreen => Color.FromUInt32(0xff00fa9a);
+ public static Color MediumSpringGreen => KnownColor.MediumSpringGreen.ToColor();
///
/// Gets a color with an ARGB value of #ff48d1cc.
///
- public static Color MediumTurquoise => Color.FromUInt32(0xff48d1cc);
+ public static Color MediumTurquoise => KnownColor.MediumTurquoise.ToColor();
///
/// Gets a color with an ARGB value of #ffc71585.
///
- public static Color MediumVioletRed => Color.FromUInt32(0xffc71585);
+ public static Color MediumVioletRed => KnownColor.MediumVioletRed.ToColor();
///
/// Gets a color with an ARGB value of #ff191970.
///
- public static Color MidnightBlue => Color.FromUInt32(0xff191970);
+ public static Color MidnightBlue => KnownColor.MidnightBlue.ToColor();
///
/// Gets a color with an ARGB value of #fff5fffa.
///
- public static Color MintCream => Color.FromUInt32(0xfff5fffa);
+ public static Color MintCream => KnownColor.MintCream.ToColor();
///
/// Gets a color with an ARGB value of #ffffe4e1.
///
- public static Color MistyRose => Color.FromUInt32(0xffffe4e1);
+ public static Color MistyRose => KnownColor.MistyRose.ToColor();
///
/// Gets a color with an ARGB value of #ffffe4b5.
///
- public static Color Moccasin => Color.FromUInt32(0xffffe4b5);
+ public static Color Moccasin => KnownColor.Moccasin.ToColor();
///
/// Gets a color with an ARGB value of #ffffdead.
///
- public static Color NavajoWhite => Color.FromUInt32(0xffffdead);
+ public static Color NavajoWhite => KnownColor.NavajoWhite.ToColor();
///
/// Gets a color with an ARGB value of #ff000080.
///
- public static Color Navy => Color.FromUInt32(0xff000080);
+ public static Color Navy => KnownColor.Navy.ToColor();
///
/// Gets a color with an ARGB value of #fffdf5e6.
///
- public static Color OldLace => Color.FromUInt32(0xfffdf5e6);
+ public static Color OldLace => KnownColor.OldLace.ToColor();
///
/// Gets a color with an ARGB value of #ff808000.
///
- public static Color Olive => Color.FromUInt32(0xff808000);
+ public static Color Olive => KnownColor.Olive.ToColor();
///
/// Gets a color with an ARGB value of #ff6b8e23.
///
- public static Color OliveDrab => Color.FromUInt32(0xff6b8e23);
+ public static Color OliveDrab => KnownColor.OliveDrab.ToColor();
///
/// Gets a color with an ARGB value of #ffffa500.
///
- public static Color Orange => Color.FromUInt32(0xffffa500);
+ public static Color Orange => KnownColor.Orange.ToColor();
///
/// Gets a color with an ARGB value of #ffff4500.
///
- public static Color OrangeRed => Color.FromUInt32(0xffff4500);
+ public static Color OrangeRed => KnownColor.OrangeRed.ToColor();
///
/// Gets a color with an ARGB value of #ffda70d6.
///
- public static Color Orchid => Color.FromUInt32(0xffda70d6);
+ public static Color Orchid => KnownColor.Orchid.ToColor();
///
/// Gets a color with an ARGB value of #ffeee8aa.
///
- public static Color PaleGoldenrod => Color.FromUInt32(0xffeee8aa);
+ public static Color PaleGoldenrod => KnownColor.PaleGoldenrod.ToColor();
///
/// Gets a color with an ARGB value of #ff98fb98.
///
- public static Color PaleGreen => Color.FromUInt32(0xff98fb98);
+ public static Color PaleGreen => KnownColor.PaleGreen.ToColor();
///
/// Gets a color with an ARGB value of #ffafeeee.
///
- public static Color PaleTurquoise => Color.FromUInt32(0xffafeeee);
+ public static Color PaleTurquoise => KnownColor.PaleTurquoise.ToColor();
///
/// Gets a color with an ARGB value of #ffdb7093.
///
- public static Color PaleVioletRed => Color.FromUInt32(0xffdb7093);
+ public static Color PaleVioletRed => KnownColor.PaleVioletRed.ToColor();
///
/// Gets a color with an ARGB value of #ffffefd5.
///
- public static Color PapayaWhip => Color.FromUInt32(0xffffefd5);
+ public static Color PapayaWhip => KnownColor.PapayaWhip.ToColor();
///
/// Gets a color with an ARGB value of #ffffdab9.
///
- public static Color PeachPuff => Color.FromUInt32(0xffffdab9);
+ public static Color PeachPuff => KnownColor.PeachPuff.ToColor();
///
/// Gets a color with an ARGB value of #ffcd853f.
///
- public static Color Peru => Color.FromUInt32(0xffcd853f);
+ public static Color Peru => KnownColor.Peru.ToColor();
///
/// Gets a color with an ARGB value of #ffffc0cb.
///
- public static Color Pink => Color.FromUInt32(0xffffc0cb);
+ public static Color Pink => KnownColor.Pink.ToColor();
///
/// Gets a color with an ARGB value of #ffdda0dd.
///
- public static Color Plum => Color.FromUInt32(0xffdda0dd);
+ public static Color Plum => KnownColor.Plum.ToColor();
///
/// Gets a color with an ARGB value of #ffb0e0e6.
///
- public static Color PowderBlue => Color.FromUInt32(0xffb0e0e6);
+ public static Color PowderBlue => KnownColor.PowderBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff800080.
///
- public static Color Purple => Color.FromUInt32(0xff800080);
+ public static Color Purple => KnownColor.Purple.ToColor();
///
/// Gets a color with an ARGB value of #ffff0000.
///
- public static Color Red => Color.FromUInt32(0xffff0000);
+ public static Color Red => KnownColor.Red.ToColor();
///
/// Gets a color with an ARGB value of #ffbc8f8f.
///
- public static Color RosyBrown => Color.FromUInt32(0xffbc8f8f);
+ public static Color RosyBrown => KnownColor.RosyBrown.ToColor();
///
/// Gets a color with an ARGB value of #ff4169e1.
///
- public static Color RoyalBlue => Color.FromUInt32(0xff4169e1);
+ public static Color RoyalBlue => KnownColor.RoyalBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff8b4513.
///
- public static Color SaddleBrown => Color.FromUInt32(0xff8b4513);
+ public static Color SaddleBrown => KnownColor.SaddleBrown.ToColor();
///
/// Gets a color with an ARGB value of #fffa8072.
///
- public static Color Salmon => Color.FromUInt32(0xfffa8072);
+ public static Color Salmon => KnownColor.Salmon.ToColor();
///
/// Gets a color with an ARGB value of #fff4a460.
///
- public static Color SandyBrown => Color.FromUInt32(0xfff4a460);
+ public static Color SandyBrown => KnownColor.SandyBrown.ToColor();
///
/// Gets a color with an ARGB value of #ff2e8b57.
///
- public static Color SeaGreen => Color.FromUInt32(0xff2e8b57);
+ public static Color SeaGreen => KnownColor.SeaGreen.ToColor();
///
/// Gets a color with an ARGB value of #fffff5ee.
///
- public static Color SeaShell => Color.FromUInt32(0xfffff5ee);
+ public static Color SeaShell => KnownColor.SeaShell.ToColor();
///
/// Gets a color with an ARGB value of #ffa0522d.
///
- public static Color Sienna => Color.FromUInt32(0xffa0522d);
+ public static Color Sienna => KnownColor.Sienna.ToColor();
///
/// Gets a color with an ARGB value of #ffc0c0c0.
///
- public static Color Silver => Color.FromUInt32(0xffc0c0c0);
+ public static Color Silver => KnownColor.Silver.ToColor();
///
/// Gets a color with an ARGB value of #ff87ceeb.
///
- public static Color SkyBlue => Color.FromUInt32(0xff87ceeb);
+ public static Color SkyBlue => KnownColor.SkyBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff6a5acd.
///
- public static Color SlateBlue => Color.FromUInt32(0xff6a5acd);
+ public static Color SlateBlue => KnownColor.SlateBlue.ToColor();
///
/// Gets a color with an ARGB value of #ff708090.
///
- public static Color SlateGray => Color.FromUInt32(0xff708090);
+ public static Color SlateGray => KnownColor.SlateGray.ToColor();
///
/// Gets a color with an ARGB value of #fffffafa.
///
- public static Color Snow => Color.FromUInt32(0xfffffafa);
+ public static Color Snow => KnownColor.Snow.ToColor();
///
/// Gets a color with an ARGB value of #ff00ff7f.
///
- public static Color SpringGreen => Color.FromUInt32(0xff00ff7f);
+ public static Color SpringGreen => KnownColor.SpringGreen.ToColor();
///
/// Gets a color with an ARGB value of #ff4682b4.
///
- public static Color SteelBlue => Color.FromUInt32(0xff4682b4);
+ public static Color SteelBlue => KnownColor.SteelBlue.ToColor();
///
/// Gets a color with an ARGB value of #ffd2b48c.
///
- public static Color Tan => Color.FromUInt32(0xffd2b48c);
+ public static Color Tan => KnownColor.Tan.ToColor();
///
/// Gets a color with an ARGB value of #ff008080.
///
- public static Color Teal => Color.FromUInt32(0xff008080);
+ public static Color Teal => KnownColor.Teal.ToColor();
///
/// Gets a color with an ARGB value of #ffd8bfd8.
///
- public static Color Thistle => Color.FromUInt32(0xffd8bfd8);
+ public static Color Thistle => KnownColor.Thistle.ToColor();
///
/// Gets a color with an ARGB value of #ffff6347.
///
- public static Color Tomato => Color.FromUInt32(0xffff6347);
+ public static Color Tomato => KnownColor.Tomato.ToColor();
///
/// Gets a color with an ARGB value of #00ffffff.
///
- public static Color Transparent => Color.FromUInt32(0x00ffffff);
+ public static Color Transparent => KnownColor.Transparent.ToColor();
///
/// Gets a color with an ARGB value of #ff40e0d0.
///
- public static Color Turquoise => Color.FromUInt32(0xff40e0d0);
+ public static Color Turquoise => KnownColor.Turquoise.ToColor();
///
/// Gets a color with an ARGB value of #ffee82ee.
///
- public static Color Violet => Color.FromUInt32(0xffee82ee);
+ public static Color Violet => KnownColor.Violet.ToColor();
///
/// Gets a color with an ARGB value of #fff5deb3.
///
- public static Color Wheat => Color.FromUInt32(0xfff5deb3);
+ public static Color Wheat => KnownColor.Wheat.ToColor();
///
/// Gets a color with an ARGB value of #ffffffff.
///
- public static Color White => Color.FromUInt32(0xffffffff);
+ public static Color White => KnownColor.White.ToColor();
///
/// Gets a color with an ARGB value of #fff5f5f5.
///
- public static Color WhiteSmoke => Color.FromUInt32(0xfff5f5f5);
+ public static Color WhiteSmoke => KnownColor.WhiteSmoke.ToColor();
///
/// Gets a color with an ARGB value of #ffffff00.
///
- public static Color Yellow => Color.FromUInt32(0xffffff00);
+ public static Color Yellow => KnownColor.Yellow.ToColor();
///
/// Gets a color with an ARGB value of #ff9acd32.
///
- public static Color YellowGreen => Color.FromUInt32(0xff9acd32);
+ public static Color YellowGreen => KnownColor.YellowGreen.ToColor();
}
}
\ No newline at end of file
diff --git a/src/Avalonia.Visuals/Media/KnownColors.cs b/src/Avalonia.Visuals/Media/KnownColors.cs
new file mode 100644
index 0000000000..0887d2c913
--- /dev/null
+++ b/src/Avalonia.Visuals/Media/KnownColors.cs
@@ -0,0 +1,224 @@
+using System;
+using System.Reflection;
+using System.Collections.Generic;
+
+namespace Avalonia.Media
+{
+ internal static class KnownColors
+ {
+ private static readonly IReadOnlyDictionary _knownColorNames;
+ private static readonly IReadOnlyDictionary _knownColors;
+ private static readonly Dictionary _knownBrushes;
+
+ static KnownColors()
+ {
+ var knownColorNames = new Dictionary(StringComparer.OrdinalIgnoreCase);
+ var knownColors = new Dictionary();
+
+ foreach (var field in typeof(KnownColor).GetRuntimeFields())
+ {
+ if (field.FieldType != typeof(KnownColor)) continue;
+ var knownColor = (KnownColor)field.GetValue(null);
+ if (knownColor == KnownColor.None) continue;
+
+ knownColorNames.Add(field.Name, knownColor);
+
+ // some known colors have the same value, so use the first
+ if (!knownColors.ContainsKey((uint)knownColor))
+ {
+ knownColors.Add((uint)knownColor, field.Name);
+ }
+ }
+
+ _knownColorNames = knownColorNames;
+ _knownColors = knownColors;
+ _knownBrushes = new Dictionary();
+ }
+
+ public static ISolidColorBrush GetKnownBrush(string s)
+ {
+ var color = GetKnownColor(s);
+ return color != KnownColor.None ? color.ToBrush() : null;
+ }
+
+ public static KnownColor GetKnownColor(string s)
+ {
+ if (_knownColorNames.TryGetValue(s, out var color))
+ {
+ return color;
+ }
+
+ return KnownColor.None;
+ }
+
+ public static string GetKnownColorName(uint rgb)
+ {
+ return _knownColors.TryGetValue(rgb, out var name) ? name : null;
+ }
+
+ public static Color ToColor(this KnownColor color)
+ {
+ return Color.FromUInt32((uint)color);
+ }
+
+ public static ISolidColorBrush ToBrush(this KnownColor color)
+ {
+ lock (_knownBrushes)
+ {
+ if (!_knownBrushes.TryGetValue(color, out var brush))
+ {
+ brush = new Immutable.ImmutableSolidColorBrush(color.ToColor());
+ _knownBrushes.Add(color, brush);
+ }
+
+ return brush;
+ }
+ }
+ }
+
+ internal enum KnownColor : uint
+ {
+ None,
+ AliceBlue = 0xfff0f8ff,
+ AntiqueWhite = 0xfffaebd7,
+ Aqua = 0xff00ffff,
+ Aquamarine = 0xff7fffd4,
+ Azure = 0xfff0ffff,
+ Beige = 0xfff5f5dc,
+ Bisque = 0xffffe4c4,
+ Black = 0xff000000,
+ BlanchedAlmond = 0xffffebcd,
+ Blue = 0xff0000ff,
+ BlueViolet = 0xff8a2be2,
+ Brown = 0xffa52a2a,
+ BurlyWood = 0xffdeb887,
+ CadetBlue = 0xff5f9ea0,
+ Chartreuse = 0xff7fff00,
+ Chocolate = 0xffd2691e,
+ Coral = 0xffff7f50,
+ CornflowerBlue = 0xff6495ed,
+ Cornsilk = 0xfffff8dc,
+ Crimson = 0xffdc143c,
+ Cyan = 0xff00ffff,
+ DarkBlue = 0xff00008b,
+ DarkCyan = 0xff008b8b,
+ DarkGoldenrod = 0xffb8860b,
+ DarkGray = 0xffa9a9a9,
+ DarkGreen = 0xff006400,
+ DarkKhaki = 0xffbdb76b,
+ DarkMagenta = 0xff8b008b,
+ DarkOliveGreen = 0xff556b2f,
+ DarkOrange = 0xffff8c00,
+ DarkOrchid = 0xff9932cc,
+ DarkRed = 0xff8b0000,
+ DarkSalmon = 0xffe9967a,
+ DarkSeaGreen = 0xff8fbc8f,
+ DarkSlateBlue = 0xff483d8b,
+ DarkSlateGray = 0xff2f4f4f,
+ DarkTurquoise = 0xff00ced1,
+ DarkViolet = 0xff9400d3,
+ DeepPink = 0xffff1493,
+ DeepSkyBlue = 0xff00bfff,
+ DimGray = 0xff696969,
+ DodgerBlue = 0xff1e90ff,
+ Firebrick = 0xffb22222,
+ FloralWhite = 0xfffffaf0,
+ ForestGreen = 0xff228b22,
+ Fuchsia = 0xffff00ff,
+ Gainsboro = 0xffdcdcdc,
+ GhostWhite = 0xfff8f8ff,
+ Gold = 0xffffd700,
+ Goldenrod = 0xffdaa520,
+ Gray = 0xff808080,
+ Green = 0xff008000,
+ GreenYellow = 0xffadff2f,
+ Honeydew = 0xfff0fff0,
+ HotPink = 0xffff69b4,
+ IndianRed = 0xffcd5c5c,
+ Indigo = 0xff4b0082,
+ Ivory = 0xfffffff0,
+ Khaki = 0xfff0e68c,
+ Lavender = 0xffe6e6fa,
+ LavenderBlush = 0xfffff0f5,
+ LawnGreen = 0xff7cfc00,
+ LemonChiffon = 0xfffffacd,
+ LightBlue = 0xffadd8e6,
+ LightCoral = 0xfff08080,
+ LightCyan = 0xffe0ffff,
+ LightGoldenrodYellow = 0xfffafad2,
+ LightGreen = 0xff90ee90,
+ LightGray = 0xffd3d3d3,
+ LightPink = 0xffffb6c1,
+ LightSalmon = 0xffffa07a,
+ LightSeaGreen = 0xff20b2aa,
+ LightSkyBlue = 0xff87cefa,
+ LightSlateGray = 0xff778899,
+ LightSteelBlue = 0xffb0c4de,
+ LightYellow = 0xffffffe0,
+ Lime = 0xff00ff00,
+ LimeGreen = 0xff32cd32,
+ Linen = 0xfffaf0e6,
+ Magenta = 0xffff00ff,
+ Maroon = 0xff800000,
+ MediumAquamarine = 0xff66cdaa,
+ MediumBlue = 0xff0000cd,
+ MediumOrchid = 0xffba55d3,
+ MediumPurple = 0xff9370db,
+ MediumSeaGreen = 0xff3cb371,
+ MediumSlateBlue = 0xff7b68ee,
+ MediumSpringGreen = 0xff00fa9a,
+ MediumTurquoise = 0xff48d1cc,
+ MediumVioletRed = 0xffc71585,
+ MidnightBlue = 0xff191970,
+ MintCream = 0xfff5fffa,
+ MistyRose = 0xffffe4e1,
+ Moccasin = 0xffffe4b5,
+ NavajoWhite = 0xffffdead,
+ Navy = 0xff000080,
+ OldLace = 0xfffdf5e6,
+ Olive = 0xff808000,
+ OliveDrab = 0xff6b8e23,
+ Orange = 0xffffa500,
+ OrangeRed = 0xffff4500,
+ Orchid = 0xffda70d6,
+ PaleGoldenrod = 0xffeee8aa,
+ PaleGreen = 0xff98fb98,
+ PaleTurquoise = 0xffafeeee,
+ PaleVioletRed = 0xffdb7093,
+ PapayaWhip = 0xffffefd5,
+ PeachPuff = 0xffffdab9,
+ Peru = 0xffcd853f,
+ Pink = 0xffffc0cb,
+ Plum = 0xffdda0dd,
+ PowderBlue = 0xffb0e0e6,
+ Purple = 0xff800080,
+ Red = 0xffff0000,
+ RosyBrown = 0xffbc8f8f,
+ RoyalBlue = 0xff4169e1,
+ SaddleBrown = 0xff8b4513,
+ Salmon = 0xfffa8072,
+ SandyBrown = 0xfff4a460,
+ SeaGreen = 0xff2e8b57,
+ SeaShell = 0xfffff5ee,
+ Sienna = 0xffa0522d,
+ Silver = 0xffc0c0c0,
+ SkyBlue = 0xff87ceeb,
+ SlateBlue = 0xff6a5acd,
+ SlateGray = 0xff708090,
+ Snow = 0xfffffafa,
+ SpringGreen = 0xff00ff7f,
+ SteelBlue = 0xff4682b4,
+ Tan = 0xffd2b48c,
+ Teal = 0xff008080,
+ Thistle = 0xffd8bfd8,
+ Tomato = 0xffff6347,
+ Transparent = 0x00ffffff,
+ Turquoise = 0xff40e0d0,
+ Violet = 0xffee82ee,
+ Wheat = 0xfff5deb3,
+ White = 0xffffffff,
+ WhiteSmoke = 0xfff5f5f5,
+ Yellow = 0xffffff00,
+ YellowGreen = 0xff9acd32
+ }
+}
\ No newline at end of file
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
index ae88a94073..a6015c52e5 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
+++ b/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
@@ -12,7 +12,7 @@ namespace Avalonia.Visuals.UnitTests.Media
[Fact]
public void Parse_Parses_RGB_Hash_Brush()
{
- var result = (SolidColorBrush)Brush.Parse("#ff8844");
+ var result = (ISolidColorBrush)Brush.Parse("#ff8844");
Assert.Equal(0xff, result.Color.R);
Assert.Equal(0x88, result.Color.G);
@@ -23,7 +23,7 @@ namespace Avalonia.Visuals.UnitTests.Media
[Fact]
public void Parse_Parses_ARGB_Hash_Brush()
{
- var result = (SolidColorBrush)Brush.Parse("#40ff8844");
+ var result = (ISolidColorBrush)Brush.Parse("#40ff8844");
Assert.Equal(0xff, result.Color.R);
Assert.Equal(0x88, result.Color.G);
@@ -34,7 +34,7 @@ namespace Avalonia.Visuals.UnitTests.Media
[Fact]
public void Parse_Parses_Named_Brush_Lowercase()
{
- var result = (SolidColorBrush)Brush.Parse("red");
+ var result = (ISolidColorBrush)Brush.Parse("red");
Assert.Equal(0xff, result.Color.R);
Assert.Equal(0x00, result.Color.G);
@@ -45,7 +45,7 @@ namespace Avalonia.Visuals.UnitTests.Media
[Fact]
public void Parse_Parses_Named_Brush_Uppercase()
{
- var result = (SolidColorBrush)Brush.Parse("RED");
+ var result = (ISolidColorBrush)Brush.Parse("RED");
Assert.Equal(0xff, result.Color.R);
Assert.Equal(0x00, result.Color.G);
@@ -53,6 +53,16 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(0xff, result.Color.A);
}
+ [Fact]
+ public void Parse_ToString_Named_Brush_Roundtrip()
+ {
+ const string expectedName = "Red";
+ var brush = (ISolidColorBrush)Brush.Parse(expectedName);
+ var name = brush.ToString();
+
+ Assert.Equal(expectedName, name);
+ }
+
[Fact]
public void Parse_Hex_Value_Doesnt_Accept_Too_Few_Chars()
{