Esempio n. 1
0
        public override object ConvertFromInvariantString(string value)
        {
            if (value != null)
            {
                value = value.Trim();

                if (value.StartsWith(LinearGradient) || value.StartsWith(RadialGradient))
                {
                    var gradientBrushParser = new GradientBrushParser(_colorTypeConverter);
                    var brush = gradientBrushParser.Parse(value);

                    if (brush != null)
                    {
                        return(brush);
                    }
                }

                if (value.StartsWith(Rgb) || value.StartsWith(Rgba) || value.StartsWith(Hsl) || value.StartsWith(Hsla))
                {
                    var color = (Color)_colorTypeConverter.ConvertFromInvariantString(value);
                    return(new SolidColorBrush(color));
                }
            }

            string[] parts = value.Split('.');

            if (parts.Length == 1 || (parts.Length == 2 && parts[0] == "Color"))
            {
                var color = (Color)_colorTypeConverter.ConvertFromInvariantString(value);
                return(new SolidColorBrush(color));
            }

            return(new SolidColorBrush(Color.Default));
        }
Esempio n. 2
0
		/// <include file="../../docs/Microsoft.Maui.Controls/BrushTypeConverter.xml" path="//Member[@MemberName='ConvertFrom']/Docs" />
		public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
		{
			var strValue = value?.ToString();

			if (strValue != null)
			{
				strValue = strValue.Trim();

				if (strValue.StartsWith(LinearGradient) || strValue.StartsWith(RadialGradient))
				{
					var gradientBrushParser = new GradientBrushParser(_colorTypeConverter);
					var brush = gradientBrushParser.Parse(strValue);

					if (brush != null)
						return brush;
				}

				if (strValue.StartsWith(Rgb, StringComparison.InvariantCulture) || strValue.StartsWith(Rgba, StringComparison.InvariantCulture) || strValue.StartsWith(Hsl, StringComparison.InvariantCulture) || strValue.StartsWith(Hsla))
				{
					var color = (Color)_colorTypeConverter.ConvertFromInvariantString(strValue);
					return new SolidColorBrush(color);
				}
			}

			string[] parts = strValue.Split('.');

			if (parts.Length == 1 || (parts.Length == 2 && parts[0] == "Color"))
			{
				var color = (Color)_colorTypeConverter.ConvertFromInvariantString(strValue);
				return new SolidColorBrush(color);
			}

			return new SolidColorBrush(null);
		}