private StylesheetTreeNode AddNodeRecursive(PropertySettingGroup propertySettings, IElementSelector selector, StylesheetTreeNodeCollection parentNodeCollection) { if (selector.Key == 0) { return(null); } StylesheetTreeNode node = parentNodeCollection.FindSelectorNode(selector.Key); if (node == null) { node = new StylesheetTreeNode(this.ownerNode.OwnerTree, selector); parentNodeCollection.RegisterSelectorNode(node); } if (selector.ChildSelector != null) { this.AddNodeRecursive(propertySettings, selector.ChildSelector, node.Nodes); } else { node.PropertySettingGroups.Add(propertySettings); } return(node); }
private static void ApplyGroupSettingsOnElement(PropertySettingGroup group, RadElement element) { foreach (IPropertySetting setting in group.PropertySettings.EnumeratePropertySettingsForElement(element)) { setting.ApplyValue(element); } }
/// <summary> /// Adds tree nodes from the PropertySettingGroups in the stylesheet. Root nodes are grouped by groups' Selector Key. /// Child nodes correspond to child selectors. /// </summary> /// <param name="styleSheet"></param> public void CreateNodesFromStyle(StyleSheet styleSheet) { for (int i = 0; i < styleSheet.PropertySettingGroups.Count; i++) { PropertySettingGroup group = styleSheet.PropertySettingGroups[i]; group.SetIsFromStyleSheet(); for (int k = 0; k < group.Selectors.Count; k++) { IElementSelector selector = group.Selectors[k]; this.RootNode.Nodes.AddElementSelector(group, selector); } } }
private void ApplyPropertySettingsOnAttachedElement(RadElement element, bool onPropertyChanged) { if (this.propertySettingGroups == null) { return; } List <PropertySettingGroup> groupsWithConditions = new List <PropertySettingGroup>(); List <PropertySettingGroup> groupsWithoutConditions = new List <PropertySettingGroup>(); for (int i = 0; i < this.propertySettingGroups.Count; i++) { PropertySettingGroup group = this.propertySettingGroups[i]; if (!group.Selectors[0].HasApplyCondition) { groupsWithoutConditions.Add(group); } else if (group.Selectors[0].CanSelect(element)) { groupsWithConditions.Add(group); } } //check whether we need to apply the groups without condition if (!onPropertyChanged || groupsWithConditions.Count == 0) { foreach (PropertySettingGroup group in groupsWithoutConditions) { ApplyGroupSettingsOnElement(group, element); } } //groups with condition are always applicable foreach (PropertySettingGroup group in groupsWithConditions) { ApplyGroupSettingsOnElement(group, element); } }
public StylesheetTreeNode AddElementSelector(PropertySettingGroup propertySettings, IElementSelector selector) { StylesheetTreeNode node = this.AddNodeRecursive(propertySettings, selector, this); return(node); }
private void LoadControlDefaultTheme() { Theme theme = new Theme("ControlDefault"); StyleGroup styleGroup = new StyleGroup(); styleGroup.Registrations.Add(new StyleRegistration()); styleGroup.Registrations[0].RegistrationType = "ElementTypeControlType"; styleGroup.Registrations[0].ElementType = "Telerik.WinControls.RootRadElement"; styleGroup.Registrations[0].ControlType = "Telerik.WinControls.UI.RadCarousel"; theme.StyleGroups.Add(styleGroup); styleGroup.PropertySettingGroups.Add(new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton"), PropertySettings = { new PropertySetting("BackColor", (object)Color.Transparent), new PropertySetting("DisplayStyle", (object)DisplayStyle.Image), new PropertySetting("Image", (object)Telerik\u002EWinControls\u002EUI\u002EResources.previousButton) } }); styleGroup.PropertySettingGroups.Add(new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton"), PropertySettings = { new PropertySetting("BackColor", (object)Color.Transparent), new PropertySetting("DisplayStyle", (object)DisplayStyle.Image), new PropertySetting("Image", (object)Telerik\u002EWinControls\u002EUI\u002EResources.nextButton) } }); PropertySettingGroup propertySettingGroup1 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton") }; propertySettingGroup1.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonFill"); propertySettingGroup1.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Hidden)); styleGroup.PropertySettingGroups.Add(propertySettingGroup1); PropertySettingGroup propertySettingGroup2 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton") }; propertySettingGroup2.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonBorder"); propertySettingGroup2.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed)); styleGroup.PropertySettingGroups.Add(propertySettingGroup2); PropertySettingGroup propertySettingGroup3 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton") }; propertySettingGroup3.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonFill"); propertySettingGroup3.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Hidden)); styleGroup.PropertySettingGroups.Add(propertySettingGroup3); PropertySettingGroup propertySettingGroup4 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton") }; propertySettingGroup4.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonBorder"); propertySettingGroup4.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed)); styleGroup.PropertySettingGroups.Add(propertySettingGroup4); PropertySettingGroup propertySettingGroup5 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem") }; propertySettingGroup5.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.TextPrimitive"); propertySettingGroup5.PropertySettings.Add(new PropertySetting("ForeColor", (object)Color.Transparent)); styleGroup.PropertySettingGroups.Add(propertySettingGroup5); PropertySettingGroup propertySettingGroup6 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem") }; propertySettingGroup6.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.BorderPrimitive"); propertySettingGroup6.PropertySettings.Add(new PropertySetting("ForeColor", (object)Color.Transparent)); propertySettingGroup6.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Solid)); propertySettingGroup6.PropertySettings.Add(new PropertySetting("BoxSyle", (object)BorderBoxStyle.SingleBorder)); styleGroup.PropertySettingGroups.Add(propertySettingGroup6); PropertySettingGroup propertySettingGroup7 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem") }; propertySettingGroup7.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.FillPrimitive"); propertySettingGroup7.PropertySettings.Add(new PropertySetting("BackColor", (object)Color.Transparent)); propertySettingGroup7.PropertySettings.Add(new PropertySetting("ForeColor2", (object)Color.Transparent)); propertySettingGroup7.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Radial)); propertySettingGroup7.PropertySettings.Add(new PropertySetting("ZIndex", (object)10)); propertySettingGroup7.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed)); styleGroup.PropertySettingGroups.Add(propertySettingGroup7); PropertySettingGroup propertySettingGroup8 = new PropertySettingGroup() { Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem.MouseOver") }; propertySettingGroup8.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.FillPrimitive"); propertySettingGroup8.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Visible)); propertySettingGroup8.PropertySettings.Add(new PropertySetting() { Name = "BackColor", EndValue = (object)Color.Transparent }); propertySettingGroup8.PropertySettings.Add(new PropertySetting() { Name = "BackColor2", EndValue = (object)Color.FromArgb(120, (int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue) }); propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Radial)); propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientAngle", (object)90f)); propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientPercentage", (object)0.5f)); propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientPercentage2", (object)0.666f)); propertySettingGroup8.PropertySettings.Add(new PropertySetting("NumberOfColors", (object)2)); styleGroup.PropertySettingGroups.Add(propertySettingGroup8); ThemeRepository.Add(theme); }