Example #1
0
        private TDependencyObject GetStyleSheetParent(TDependencyObject obj)
        {
            var currentBindableObject = obj;
            var oldSelectorType       = treeNodeProvider.CurrentSelectorType;

            try
            {
                treeNodeProvider.Switch(SelectorType.LogicalTree);
                while (currentBindableObject != null)
                {
                    var styleSheet = dependencyPropertyService.GetStyleSheet(currentBindableObject);
                    if (styleSheet != null)
                    {
                        treeNodeProvider.Switch(oldSelectorType);
                        return(currentBindableObject);
                    }

                    currentBindableObject = treeNodeProvider.GetParent(currentBindableObject as TUIElement);
                }
            }
            finally
            {
                treeNodeProvider.Switch(oldSelectorType);
            }

            return(null);
        }
Example #2
0
        public BaseCss(IDependencyPropertyService <TDependencyObject, TUIElement, TStyle, TDependencyProperty> dependencyPropertyService,
                       ISwitchableTreeNodeProvider <TDependencyObject> treeNodeProvider,
                       IStyleResourcesService applicationResourcesService,
                       INativeStyleService <TStyle, TDependencyObject, TDependencyProperty> nativeStyleService,
                       string defaultCssNamespace,
                       IMarkupExtensionParser markupExpressionParser,
                       Action <Action> uiInvoker,
                       ICssFileProvider fileProvider)
        {
            this.dependencyPropertyService   = dependencyPropertyService;
            this.treeNodeProvider            = treeNodeProvider;
            this.applicationResourcesService = applicationResourcesService;
            this.nativeStyleService          = nativeStyleService;
            this.markupExpressionParser      = markupExpressionParser;
            this.uiInvoker     = uiInvoker;
            this.cssTypeHelper = new CssTypeHelper <TDependencyObject, TUIElement, TDependencyProperty, TStyle>(markupExpressionParser, dependencyPropertyService);

            CssParser.Initialize(defaultCssNamespace, fileProvider);
            StyleSheet.GetParent     = parent => treeNodeProvider.GetParent((TDependencyObject)parent);
            StyleSheet.GetStyleSheet = treeNode => dependencyPropertyService.GetStyleSheet((TDependencyObject)treeNode);
        }
Example #3
0
        private TDependencyObject GetStyleSheetParent(TDependencyObject obj)
        {
            var currentDependencyObject = obj;

            try
            {
                while (currentDependencyObject != null)
                {
                    var styleSheet = dependencyPropertyService.GetStyleSheet(currentDependencyObject);
                    if (styleSheet != null)
                    {
                        return(currentDependencyObject);
                    }

                    currentDependencyObject = treeNodeProvider.GetParent(currentDependencyObject as TDependencyObject);
                }
            }
            finally
            {
            }

            return(null);
        }