void EvaluateRuleSet(WebDom.CssRuleSet ruleset) { //only some prop need to be alter List<CssPropertyDeclaration> newProps = null; foreach (CssPropertyDeclaration decl in ruleset.GetAssignmentIter()) { switch (decl.WellknownPropertyName) { case WellknownCssPropertyName.Font: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandFontProperty(decl, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.Border: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandBorderProperty(decl, BorderDirection.All, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderLeft: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandBorderProperty(decl, BorderDirection.Left, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderRight: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandBorderProperty(decl, BorderDirection.Right, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderTop: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandBorderProperty(decl, BorderDirection.Top, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderBottom: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandBorderProperty(decl, BorderDirection.Bottom, newProps); decl.IsExpand = true; } break; //--------------------------- case WellknownCssPropertyName.BorderStyle: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandCssEdgeProperty(decl, WellknownCssPropertyName.BorderLeftStyle, WellknownCssPropertyName.BorderTopStyle, WellknownCssPropertyName.BorderRightStyle, WellknownCssPropertyName.BorderBottomStyle, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderWidth: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandCssEdgeProperty(decl, WellknownCssPropertyName.BorderLeftWidth, WellknownCssPropertyName.BorderTopWidth, WellknownCssPropertyName.BorderRightWidth, WellknownCssPropertyName.BorderBottomWidth, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.BorderColor: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandCssEdgeProperty(decl, WellknownCssPropertyName.BorderLeftColor, WellknownCssPropertyName.BorderTopColor, WellknownCssPropertyName.BorderRightColor, WellknownCssPropertyName.BorderBottomColor, newProps); decl.IsExpand = true; } break; //--------------------------- case WellknownCssPropertyName.Margin: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandCssEdgeProperty(decl, WellknownCssPropertyName.MarginLeft, WellknownCssPropertyName.MarginTop, WellknownCssPropertyName.MarginRight, WellknownCssPropertyName.MarginBottom, newProps); decl.IsExpand = true; } break; case WellknownCssPropertyName.Padding: { if (newProps == null) newProps = new List<CssPropertyDeclaration>(); ExpandCssEdgeProperty(decl, WellknownCssPropertyName.PaddingLeft, WellknownCssPropertyName.PaddingTop, WellknownCssPropertyName.PaddingRight, WellknownCssPropertyName.PaddingBottom, newProps); decl.IsExpand = true; } break; } } //-------------------- //add new prop to ruleset if (newProps == null) { return; } //------------ int newPropCount = newProps.Count; for (int i = 0; i < newPropCount; ++i) { //add new prop to ruleset ruleset.AddCssCodeProperty(newProps[i]); } }