public static bool TryParse(string value, MeasureUsage measureUsage, out Measure measure) { var unit = value.Trim().ToLower(); if (string.IsNullOrWhiteSpace(unit)) { measure = new Measure(0f, MeasureUnit.User, measureUsage); return(true); } if (unit == "none") { measure = Measure.None; return(true); } var match = MeasureRegex.Match(value); // Console.WriteLine($"Matching {value} to Measure {match.Success}"); if (!match.Success) { measure = Measure.None; return(false); } measure = new Measure( float.Parse(match.Groups[1].Value), TranslateToUnitType(match.Groups[2].Value), measureUsage ); return(true); }
private static float ResolvePercentage(float value, ref PxRectangle size, MeasureUsage usage) { // ReSharper disable once SwitchStatementMissingSomeCases switch (usage) { case MeasureUsage.Horizontal: return((size.Width * value) / 100); case MeasureUsage.Vertical: return((size.Height * value) / 100); default: return(0.0f); } }
public Measure(float value, MeasureUnit unit, MeasureUsage renderType) { Unit = unit; Value = value; Usage = renderType; }
public static Measure Parse(string value, MeasureUsage measureUsage) { return(TryParse(value, measureUsage, out var m) ? m : Measure.None); }
public MeasureAttributeConverter(string name, MeasureUsage renderingType) : base(name) { _measureUsage = renderingType; }