public GdiRenderKit(IViewPerspective viewPerspective, IWindowProvider <IVisualHost> windowProvider, IResolver resolver, IThemeProvider styleContext, IVisualBootstrapper visualBootstrapper, IViewInflater viewInflater, IImageProvider imageProvider) : base(resolver, visualBootstrapper, viewInflater, new Dictionary <IVisualElement, ValueCube>(), imageProvider) { _windowProvider = windowProvider; Init(windowProvider, styleContext, viewPerspective, _renderPositions, ref _imageProvider !, ref _measureContext !, ref _renderContext !); }
protected BaseRenderKit(IResolver resolver, IVisualBootstrapper visualBootstrapper, IViewInflater viewInflater, Dictionary <IVisualElement, ValueCube> renderPositions, IImageProvider imageProvider) : this(ref resolver !, imageProvider, renderPositions)
public async Task ApplyStylesToVisualAsync(IVisualElement visual, IAttributeDictionary attributeDictionary, IVisualLineage visualLineage, IViewInflater viewInflater) { await _appliedStyleBuilder.ApplyVisualStylesAsync(visual, attributeDictionary, visualLineage, viewInflater); return; var omgStyle = await _styleProvider.GetStyleForVisualAsync(visual, attributeDictionary); if (omgStyle != null) { } if (attributeDictionary.TryGetAttributeValue("class", out var className)) { await ApplyStylesToVisualAsync(visual, className, visualLineage); return; } if (attributeDictionary.TryGetAttributeValue("Style", out var styleName)) { var style = await _styleProvider.GetStyleByNameAsync(styleName); if (style == null) { return; } //var applyingRules = new StyledVisualWorker(style, _propertyProvider, _visualBootstrapper); //applyingRules.TrySetVisualStyle(visual, style); //if (applyingRules.TryGetVisualTemplate(out var visualTemplate) && // visualTemplate is DeferredVisualTemplate deferred) if (TryGetVisualTemplate(style, out var visualTemplate) && visualTemplate is DeferredVisualTemplate deferred) { //var contentVisual = await viewInflater.GetVisualAsync(deferred.MarkupNode, // visual.GetType(), visualLineage, applyingRules.ApplyStylesToVisualAsync); var contentVisual = await viewInflater.GetVisualAsync(deferred.MarkupNode, visual.GetType(), visualLineage, _appliedStyleBuilder.ApplyVisualStylesAsync); visual.Template = new VisualTemplate { Content = contentVisual }; //control template's data context should be the control being templated....? if (contentVisual is IBindableElement bindable) { bindable.DataContext = visual; } visualLineage.AssertPopVisual(contentVisual); _appliedStyleBuilder.BuildAppliedStyle(style, visual, visualLineage); } else { await _appliedStyleBuilder.ApplyVisualStylesAsync(visual, attributeDictionary, visualLineage); //applyingRules.ApplyStyleValuesToVisual(visual, attributeDictionary, visualLineage); } } }