private static void UpdateRegionNames(DependencyObject d, DependencyObject regionHolder) { foreach (DependencyObject child in LogicalTreeHelper.GetChildren(d).OfType <DependencyObject>()) { string region = DynamicRegionManager.GetScreenRegion(child); if (region != null) { UpdateRegionName(child, region, GetRegionNamesRecursive(regionHolder)); } else { UpdateRegionNames(child, regionHolder); } } }
private static DynamicRegionNames GetRegionNamesRecursive(DependencyObject child) { DependencyObject parentObject = LogicalTreeHelper.GetParent(child); if (parentObject == null) { return(null); } var regionNames = DynamicRegionManager.GetDynamicRegionNames(parentObject); if (regionNames != null) { return(regionNames); } else { return(GetRegionNamesRecursive(parentObject)); } }