//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 !;
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 !;