using System; namespace Xamarin.Forms { [TypeConverter(typeof(FlowDirectionConverter))] public enum FlowDirection { MatchParent = 0, LeftToRight = 1, RightToLeft = 2, } [Xaml.TypeConversion(typeof(FlowDirection))] public class FlowDirectionConverter : TypeConverter { public override object ConvertFromInvariantString(string value) { if (value != null) { if (Enum.TryParse(value, out FlowDirection direction)) return direction; if (value.Equals("ltr", StringComparison.OrdinalIgnoreCase)) return FlowDirection.LeftToRight; if (value.Equals("rtl", StringComparison.OrdinalIgnoreCase)) return FlowDirection.RightToLeft; if (value.Equals("inherit", StringComparison.OrdinalIgnoreCase)) return FlowDirection.MatchParent; } throw new InvalidOperationException(string.Format("Cannot convert \"{0}\" into {1}", value, typeof(FlowDirection))); } } }