/// <summary> /// Hilfsmethode zum löschen von Stilangaben im Fall des Setzens einer Übergeordneten oder Untergeordneten /// wie z.B. margins, margins-top /// </summary> /// <param name="key"></param> private void RemoveIfContains(StyleKeys key) { if (CurrentStyles.Keys.Contains(key)) { CurrentStyles.Remove(key); } }
/// <summary> /// Hilfsmethode zum Hinzufügen eines aktuell definierten Stils /// </summary> /// <param name="StyleKey"></param> /// <param name="Value"></param> /// <param name="IsInheritable"></param> void SetStyle(StyleKeys StyleKey, CssMeasure Value, bool IsInheritable) { CurrentStyles[StyleKey] = new StyleDefinition() { Key = StyleKey, IsInheritable = IsInheritable, MeasuredValue = Value }; }
public static void AddStyle(CompilerState state, string selector, DynamicDictionary style) { var styleSelector = StyleSelectorParser.Parse(selector); var container = new StyleContainer(styleSelector); foreach (var(name, value) in style.GetContents()) { if (value == null) { state.Context.Logger.Warning($"Style contains null value for property '{name}'."); continue; } var propName = StringUtility.ToPascalCase(name); if (StyleKeys.TryGetByName(propName, out var styleKey) && state.Context.Converters.TryConvert(value, styleKey.Type, out var propertyValue)) { styleKey.Set(container, propertyValue); } } state.Document.Styles.Add(container); }
/// <summary> /// Hilfsmethode zum abrufen eines aktuell definierten Stils /// </summary> /// <typeparam name="T"></typeparam> /// <param name="StyleKey"></param> /// <returns></returns> T GetStyle <T>(StyleKeys StyleKey) where T : CssMeasure { return(CurrentStyles.ContainsKey(StyleKey) ? (T)CurrentStyles[StyleKey].MeasuredValue : null); }