private void markTreeDirtyHelper(Visual v) { //now walk down and mark all UIElements dirty if (v != null) { if (v.CheckFlagsAnd(VisualFlags.IsUIElement)) { UIElement uie = ((UIElement)v); uie.InvalidateMeasureInternal(); uie.InvalidateArrangeInternal(); } //walk children doing the same, don't stop if they are already dirty since there can //be insulated dirty islands below int cnt = v.InternalVisualChildrenCount; for (int i = 0; i < cnt; i++) { Visual child = v.InternalGetVisualChild(i); if (child != null) { markTreeDirtyHelper(child); } } } }
internal override void invalidate(UIElement e) { e.InvalidateArrangeInternal(); }