public static void CheckSubTree(DependencyObject dObject, DObjectChecker checker, bool failIfNothingFound) { VisualTreeEnumerator visualTreeEnumerator = new VisualTreeEnumerator(dObject); DependencyObjectCheckerEnumerator dObjectCheckerEnumerator = new DependencyObjectCheckerEnumerator(checker); dObjectCheckerEnumerator.MoveNext(); while (visualTreeEnumerator.MoveNext()) { if (dObjectCheckerEnumerator.Current.CheckElement(visualTreeEnumerator.Current, visualTreeEnumerator.Level)) { DObjectChecker parent = (DObjectChecker)dObjectCheckerEnumerator.CurrentParent; if (parent != null) { Assert.IsTrue(IsParent(dObjectCheckerEnumerator.Current.Element, parent.Element)); } if (!dObjectCheckerEnumerator.MoveNext()) { checker.CheckLevels(); return; } } } if (failIfNothingFound) { Assert.Fail("Element not found: " + dObjectCheckerEnumerator.Current); } }
public void CheckSubTree(DependencyObject dObject) { VisualTreeEnumerator visualTreeEnumerator = new VisualTreeEnumerator(dObject); DependencyObjectCheckerEnumerator dObjectCheckerEnumerator = new DependencyObjectCheckerEnumerator(this); dObjectCheckerEnumerator.MoveNext(); while (visualTreeEnumerator.MoveNext()) { this.CheckElement(visualTreeEnumerator.Current, visualTreeEnumerator.Level); } }
IScrollInfo GetScrollInfo() { VisualTreeEnumerator enumerator = new VisualTreeEnumerator(grid); while (enumerator.MoveNext()) { if (enumerator.Current is DataPresenter) { return(enumerator.Current as IScrollInfo); } } return(null); }
public static void ForEachElement(FrameworkElement treeRoot, ElementHandler elementHandler) { VisualTreeEnumerator en = new VisualTreeEnumerator(treeRoot); while (en.MoveNext()) { FrameworkElement element = en.Current as FrameworkElement; if (element != null) { elementHandler(element); } } }
public DockLayoutManager FindDockLayoutManager() { VisualTreeEnumerator e = new VisualTreeEnumerator(this); while (e.MoveNext()) { DockLayoutManager manager = e.Current as DockLayoutManager; if (manager != null) { return(manager); } } return(null); }
public static FrameworkElement FindElement(FrameworkElement treeRoot, System.Predicate <FrameworkElement> predicate) { VisualTreeEnumerator visualTreeEnumerator = new VisualTreeEnumerator(treeRoot); while (visualTreeEnumerator.MoveNext()) { FrameworkElement frameworkElement = visualTreeEnumerator.Current as FrameworkElement; if (frameworkElement != null && predicate(frameworkElement)) { return(frameworkElement); } } return(null); }
private void ExecuteForFoundElements(DependencyObject element, Action <ILayoutSerializer, DependencyObject, string> action) { var enumerator = new VisualTreeEnumerator(element); var ignoredParentElements = new List <DependencyObject>(); while (enumerator.MoveNext()) { //Get the current control DependencyObject currentElement = enumerator.Current; string currentElementName = currentElement is FrameworkElement ? ((FrameworkElement)currentElement).Name : string.Empty; //See if we should ignore this control if (LayoutSettings.GetIgnoreChildControls(currentElement)) { LogTo.Debug("Ignoring all children of this control {0} (Name: {1}).", currentElement.GetType(), currentElementName); ignoredParentElements.Add(currentElement); continue; } //See if there is an serializer for our type var serializer = this._layoutSerializers.FirstOrDefault(f => f.ControlType.IsInstanceOfType(currentElement)); if (serializer == null) { continue; } //See if any of our parents was ignored if (enumerator.GetVisualParents().Any(ignoredParentElements.Contains)) { LogTo.Debug("Ignoring this control {0} (Name: {1}) because a parent was ignored.", currentElement.GetType(), currentElementName); continue; } //Get the control name string controlName = LayoutSettings.GetLayoutControlName(currentElement); if (string.IsNullOrWhiteSpace(controlName)) { LogTo.Debug("Wanted to work with layout of {0} (Name: {1}) but it has no name.", currentElement.GetType(), currentElementName); continue; } //Execute the actual action action(serializer, currentElement, controlName); } }
internal static DependencyObject FindElementCore(DependencyObject treeRoot, Predicate <DependencyObject> predicate) { VisualTreeEnumerator en = new VisualTreeEnumerator(treeRoot); while (en.MoveNext()) { DependencyObject element = en.Current; if (element != null && predicate(element)) { return(element); } } return(null); }
protected virtual void OnLoaded(object sender, RoutedEventArgs e) { VisualTreeEnumerator en = new VisualTreeEnumerator(this); while (en.MoveNext()) { BarManager _manager = en.Current as BarManager; if (_manager != null) { DemoModuleControl.DemoContent = _manager; Manager = _manager; break; } } }
int GetSelectionBarElementCount(SchedulerControl scheduler) { List <FrameworkElement> result = new List <FrameworkElement>(); VisualTreeEnumerator treeWalker = new VisualTreeEnumerator(scheduler); while (treeWalker.MoveNext()) { FrameworkElement fe = treeWalker.Current as FrameworkElement; if (fe == null) { continue; } if (IsRootSelectionBarCell(fe, result)) { result.Add(fe); } } return(result.Count); }
protected override void RaiseBeforeModuleDisappear() { base.RaiseBeforeModuleDisappear(); DisposeList = new List <DockLayoutManager>(); VisualTreeEnumerator e = new VisualTreeEnumerator(this); while (e.MoveNext()) { DockLayoutManager manager = e.Current as DockLayoutManager; if (manager != null) { DisposeList.Add(manager); manager.Visibility = Visibility.Collapsed; foreach (FloatGroup fGroup in manager.FloatGroups) { fGroup.IsOpen = false; } } } }