Example #1
0
        public IEnumerable <Tuple <IStyle, IVisualElement> > GetStyles(ITextNode node)
        {
            //if (node.Attributes.TryGetValue(nameof(Style), out var styleName))
            if (node.TryGetAttribute(nameof(Style), false, out var styleName))
            {
                switch (node.Value)
                {
                case IVisualElement visualElement:
                    if (TryGetElementStyle(visualElement, styleName.Value, out var found))
                    {
                        yield return(new Tuple <IStyle, IVisualElement>(found, visualElement));
                    }
                    break;

                default:
                    throw new NotImplementedException();
                }
            }

            foreach (var kvp in node.Children.Values)
            {
                foreach (var style in GetStyles(kvp))
                {
                    yield return(style);
                }
            }
        }