Example #1
0
        public static float GetActualBorderWidth(CssLength borderValue, IHasEmHeight b)
        {
            //------------------------------
            //plan: use extended cssunit
            //------------------------------
            switch (borderValue.UnitOrNames)
            {
            case CssUnitOrNames.EmptyValue:    //as medium
            case CssUnitOrNames.BorderMedium:
                return(2f);

            case CssUnitOrNames.BorderThin:
                return(1f);

            case CssUnitOrNames.BorderThick:
                return(4f);

            default:
                return(Math.Abs(ConvertToPx(borderValue, 1, b)));
            }
        }
Example #2
0
        /// <summary>
        /// get length in pixel
        /// </summary>
        /// <param name="length"></param>
        /// <param name="hundredPercent"></param>
        /// <param name="box"></param>
        /// <returns></returns>
        public static float ConvertToPx(CssLength length, float hundredPercent, IHasEmHeight box)
        {
            //Return zero if no length specified, zero specified
            switch (length.UnitOrNames)
            {
            case CssUnitOrNames.EmptyValue:
                return(0);

            case CssUnitOrNames.Percent:
                return((length.Number / 100f) * hundredPercent);

            case CssUnitOrNames.Ems:
                return(length.Number * box.GetEmHeight());

            case CssUnitOrNames.Ex:
                return(length.Number * (box.GetEmHeight() / 2));

            case CssUnitOrNames.Pixels:
                //atodo: check support for hi dpi
                return(length.Number);

            case CssUnitOrNames.Milimeters:
                return(length.Number * 3.779527559f);    //3 pixels per millimeter

            case CssUnitOrNames.Centimeters:
                return(length.Number * 37.795275591f);    //37 pixels per centimeter

            case CssUnitOrNames.Inches:
                return(length.Number * 96f);    //96 pixels per inch

            case CssUnitOrNames.Points:
                return(length.Number * (96f / 72f));    // 1 point = 1/72 of inch

            case CssUnitOrNames.Picas:
                return(length.Number * 16f);    // 1 pica = 12 points

            default:
                return(0);
            }
        }