Exemplo n.º 1
0
        //public void TrySetVisualStyle(IVisualElement visual,
        //                               IAppliedStyle styleSheet)
        //{
        //    var propAccessor = _propertyProvider.GetPropertyAccessor(visual.GetType(),
        //        nameof(IVisualElement.Style));
        //    if (propAccessor.CanWrite)
        //    {
        //        Object oVisual = visual;
        //        propAccessor.SetPropertyValue(ref oVisual, styleSheet);
        //    }
        //}

        public Boolean TryGetVisualTemplate(out IVisualTemplate template)
        {
            var items = from r in _rules.OfType <DependencyPropertyValueRule>()
                        where r.Selector.Property.Name == nameof(IVisualElement.Template)
                        select r;

            var goodRule = items.FirstOrDefault();

            if (goodRule?.Declaration.Value is IVisualTemplate visualTemplate)
            {
                template = visualTemplate;
                return(true);
            }

            template = default !;
Exemplo n.º 2
0
        private static Boolean TryGetVisualTemplate(IStyleSheet style,
                                                    out IVisualTemplate template)
        {
            foreach (var rule in style.Rules)
            {
                if (!(rule is DependencyPropertyValueRule depProp) ||
                    depProp.Selector.Property.Name != nameof(IVisualElement.Template))
                {
                    continue;
                }

                if (depProp.Declaration.Value is IVisualTemplate visualTemplate)
                {
                    template = visualTemplate;
                    return(true);
                }
            }

            template = default !;