GetPropertyCssValue() public method

Used to retrieve the object representation of the value of a CSS property if it has been explicitly set within this declaration block. This method returns null if the property is a shorthand property. Shorthand property values can only be accessed and modified as strings, using the getPropertyValue and setProperty methods.
public GetPropertyCssValue ( string propertyName ) : ICssValue
propertyName string The name of the CSS property. See the CSS property index.
return ICssValue
示例#1
0
        public void TestRectValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[1]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("rect");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("rect");

            Assert.AreEqual("rect(10cm 23px 45px 89px)", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.Rect, primValue.PrimitiveType);
            IRect rect = primValue.GetRectValue();

            ICssPrimitiveValue rectValue = rect.Top;

            Assert.AreEqual(100, rectValue.GetFloatValue(CssPrimitiveType.Mm));
            Assert.AreEqual(CssPrimitiveType.Cm, rectValue.PrimitiveType);

            rectValue = rect.Right;
            Assert.AreEqual(23, rectValue.GetFloatValue(CssPrimitiveType.Px));
            Assert.AreEqual(CssPrimitiveType.Px, rectValue.PrimitiveType);

            rectValue = rect.Bottom;
            Assert.AreEqual(45, rectValue.GetFloatValue(CssPrimitiveType.Px));
            Assert.AreEqual(CssPrimitiveType.Px, rectValue.PrimitiveType);

            rectValue = rect.Left;
            Assert.AreEqual(89, rectValue.GetFloatValue(CssPrimitiveType.Px));
            Assert.AreEqual(CssPrimitiveType.Px, rectValue.PrimitiveType);
        }
示例#2
0
        public void TestFloatPcValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[5]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("float-pc");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("float-pc");

            Assert.AreEqual("10pc", primValue.CssText, "CssText");
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType, "CssValueType");
            Assert.AreEqual(CssPrimitiveType.Pc, primValue.PrimitiveType, "PrimitiveType");
            Assert.AreEqual(10, primValue.GetFloatValue(CssPrimitiveType.Pc), "To PC");
        }
示例#3
0
        public void TestFloatInValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[5]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("float-in");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("float-in");

            Assert.AreEqual("10in", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.In, primValue.PrimitiveType);
            Assert.AreEqual(10, primValue.GetFloatValue(CssPrimitiveType.In));
        }
示例#4
0
        public void TestFloatUnitlessValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[5]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("float-unitless");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("float-unitless");

            Assert.AreEqual("67", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.Number, primValue.PrimitiveType);
            double res = primValue.GetFloatValue(CssPrimitiveType.Number);

            Assert.AreEqual(67, res);
        }
示例#5
0
        public void TestFloatPxValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[5]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("float-px");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("float-px");

            Assert.AreEqual("12px", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.Px, primValue.PrimitiveType);
            double res = primValue.GetFloatValue(CssPrimitiveType.Px);

            Assert.AreEqual(12, res);
        }
示例#6
0
        public void TestStringValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[1]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("string");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("string");

            Assert.AreEqual("\"a string\"", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.String, primValue.PrimitiveType);
            string str = primValue.GetStringValue();

            Assert.AreEqual("a string", str);
        }
        private double GetFontSize()
        {
            CssPrimitiveValue cssPrimValue;
            XmlElement        elmToUse;

            if (_propertyName != null && _propertyName.Equals("font-size"))
            {
                elmToUse = _parentElement;
            }
            else
            {
                elmToUse = _element;
            }

            if (elmToUse == null)
            {
                return(10);
            }
            CssStyleDeclaration csd = (CssStyleDeclaration)_ownerDocument.GetComputedStyle(elmToUse, string.Empty);

            cssPrimValue = csd.GetPropertyCssValue("font-size") as CssPrimitiveValue;

            // no default font-size set => use 10px
            if (cssPrimValue == null)
            {
                return(10);
            }
            return(cssPrimValue.GetFloatValue(CssPrimitiveType.Px));
        }
示例#8
0
        public void TestInheritEm()
        {
            CssStyleDeclaration csd       = getStyles("<a />", "root{font-size:18px} a{inher:3em}", "a");
            CssPrimitiveValue   primValue = csd.GetPropertyCssValue("inher") as CssPrimitiveValue;

            Assert.AreEqual(54, primValue.GetFloatValue(CssPrimitiveType.Px));
        }
示例#9
0
        public void TestFloatPtValue()
        {
            CssStyleDeclaration csd = (CssStyleDeclaration)((CssStyleRule)cssStyleSheet.CssRules[5]).Style;
            CssValue            val = (CssValue)csd.GetPropertyCssValue("float-pt");

            Assert.IsTrue(val is CssPrimitiveValue);
            CssPrimitiveValue primValue = (CssPrimitiveValue)csd.GetPropertyCssValue("float-pt");

            Assert.AreEqual("10pt", primValue.CssText, "CssText");
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType, "CssValueType");
            Assert.AreEqual(CssPrimitiveType.Pt, primValue.PrimitiveType, "PrimitiveType");
            Assert.AreEqual(10, primValue.GetFloatValue(CssPrimitiveType.Pt), "To PC");
            Assert.AreEqual(10 / 72D * 2.54D, primValue.GetFloatValue(CssPrimitiveType.Cm), "To CM");
            Assert.AreEqual(100 / 72D * 2.54D, primValue.GetFloatValue(CssPrimitiveType.Mm), "To MM");
            Assert.AreEqual(10 / 72D, primValue.GetFloatValue(CssPrimitiveType.In), "To IN");
            Assert.AreEqual(10 / 12D, primValue.GetFloatValue(CssPrimitiveType.Pc), "To PT");
        }
示例#10
0
        public void TestColorLongHexValue()
        {
            CssValue val = (CssValue)colorRules.GetPropertyCssValue("longhex");

            Assert.IsTrue(val is CssPrimitiveValue, "1");
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("longhex");

            Assert.AreEqual("rgb(101,67,33)", primValue.CssText, "2");
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType, "3");
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType, "4");
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(101, color.Red.GetFloatValue(CssPrimitiveType.Number), "5");
            Assert.AreEqual(67, color.Green.GetFloatValue(CssPrimitiveType.Number), "6");
            Assert.AreEqual(33, color.Blue.GetFloatValue(CssPrimitiveType.Number), "7");
            Assert.AreEqual(ColorTranslator.FromHtml("#654321"), color.GdiColor, "8");
        }
        public CssAbsPrimitiveLengthValue(CssPrimitiveValue cssValue, string propertyName, XmlElement element)
        {
            if (cssValue.PrimitiveType == CssPrimitiveType.Ident)
            {
                // this is primarily to deal with font sizes.
                float absSize;
                switch (cssValue.GetStringValue())
                {
                case "xx-small":
                    absSize = 6F;
                    break;

                case "x-small":
                    absSize = 7.5F;
                    break;

                case "small":
                    absSize = 8.88F;
                    break;

                case "large":
                    absSize = 12F;
                    break;

                case "x-large":
                    absSize = 15F;
                    break;

                case "xx-large":
                    absSize = 20F;
                    break;

                case "larger":
                case "smaller":
                    float parSize;
                    if (_parentElement != null)
                    {
                        CssStyleDeclaration csd          = (CssStyleDeclaration)_ownerDocument.GetComputedStyle(_parentElement, string.Empty);
                        CssPrimitiveValue   cssPrimValue = csd.GetPropertyCssValue("font-size") as CssPrimitiveValue;

                        // no default font-size set => use 10px
                        if (cssPrimValue == null)
                        {
                            parSize = 10;
                        }
                        else
                        {
                            parSize = (float)cssPrimValue.GetFloatValue(CssPrimitiveType.Px);
                        }
                    }
                    else
                    {
                        parSize = 10;
                    }
                    if (cssValue.GetStringValue() == "smaller")
                    {
                        absSize = parSize / 1.2F;
                    }
                    else
                    {
                        absSize = parSize * 1.2F;
                    }
                    break;

                default:
                    absSize = 10F;
                    break;
                }
                SetFloatValue(absSize);
                SetPrimitiveType(CssPrimitiveType.Px);
            }
            else
            {
                SetFloatValue(cssValue.GetFloatValue(cssValue.PrimitiveType));
                SetPrimitiveType(cssValue.PrimitiveType);
            }
            _propertyName = propertyName;
            _element      = element;
        }
示例#12
0
        public void TestInheritUnknown()
        {
            CssStyleDeclaration csd = getStyles("<a />", "", "a");

            Assert.AreEqual(null, csd.GetPropertyCssValue("dummy"));
        }