void TryCreateRegion()
        {
            var targetElement = TargetElement;

            if (targetElement == null)
            {
                Detach();
                return;
            }
            if (targetElement.CheckAccess())
            {
                Detach();

                if (!_regionCreated)
                {
                    string regionName = RegionManagerAccessor.GetRegionName(targetElement);
                    CreateRegion(targetElement, regionName);
                    _regionCreated = true;
                }
            }
        }
示例#2
0
        IRegionManager FindRegionManager(DependencyObject dependencyObject)
        {
            var regionmanager = RegionManagerAccessor.GetRegionManager(dependencyObject);

            if (regionmanager != null)
            {
                return(regionmanager);
            }

            DependencyObject parent = null;

#if HAS_WINUI
            parent = VisualTreeHelper.GetParent(dependencyObject);
#else
            parent = LogicalTreeHelper.GetParent(dependencyObject);
#endif
            if (parent != null)
            {
                return(FindRegionManager(parent));
            }

            return(null);
        }