Exemple #1
0
        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);
            }
        }
Exemple #3
0
 public Measure(float value, MeasureUnit unit, MeasureUsage renderType)
 {
     Unit  = unit;
     Value = value;
     Usage = renderType;
 }
Exemple #4
0
 public static Measure Parse(string value, MeasureUsage measureUsage)
 {
     return(TryParse(value, measureUsage, out var m) ? m : Measure.None);
 }
Exemple #5
0
 public MeasureAttributeConverter(string name, MeasureUsage renderingType) : base(name)
 {
     _measureUsage = renderingType;
 }