public object ReadYaml(IParser parser, Type type) { var scalar = (YamlDotNet.Core.Events.Scalar)parser.Current; var value = scalar.Value; if (string.IsNullOrWhiteSpace(value)) { parser.MoveNext(); return(null); } var values = value .Split(delimiter, StringSplitOptions.RemoveEmptyEntries) .ToList(); Color?color = TryParseEachAndRemove <Color?>(values, x => { bool success = ColorX.TryParse(x, out Color c); return(success, c); }); int?size = TryParseEachAndRemove(values, x => { bool success = int.TryParse(x, out int number); return(success, number); }); var result = new BorderSideStyle { Width = size ?? 0, Color = color ?? Color.Transparent, }; parser.MoveNext(); return(result); }
public void Execute(LayoutContext context, string arg) { Color newColor; if (ColorX.TryParse(arg, out newColor)) { context.Font.Color = newColor; } else { context.Font.Color = Color.White; } }
public object ReadYaml(IParser parser, Type type) { var scalar = (YamlDotNet.Core.Events.Scalar)parser.Current; var value = scalar.Value; if (string.IsNullOrWhiteSpace(value)) { parser.MoveNext(); return null; } var values = value .Split(delimiter, StringSplitOptions.RemoveEmptyEntries) .ToList(); Color? color = TryParseEachAndRemove(values, x => { bool success = ColorX.TryParse(x, out Color c); if (!success) return (false, null); return (success, (Color?)c); });