Enum View.ViewFlags
Flags used internally by a View to track invalidation state across measure, arrangement, rendering, and hit testing phases. These flags allow the framework to selectively recompute only dirty subtrees during recursive passes.
[Flags]
public enum View.ViewFlags
Fields
Active = 512This view is active — it is part of a live visual tree and will receive events, render, and animate. Set by ActivateSubtree(View) and cleared by DeactivateSubtree(View).
Animated = 1This view is animated. It has properties that are calculated based on the current UI time. It requires an animation notification on the next frame.
ArrangeChanged = 8The View has changed in a way that may cause it to arrange its children differently, even if the available rectangle and measure context are the same.
Attached = 1024This view is attached — it has been added to a visual tree that is itself attached to the platform (e.g. a window). Set by AttachSubtree(View, ref AttachEventRef) and cleared by DetachSubtree(View, ref DetachEventRef).
DescendantAnimated = 2This view has animated children. While this view directly does not depend on the next frame time, it must propagate an animation notification to its animated children.
DescendantArrangeChanged = 16One or more descendants of this View have had their ArrangeChanged flag set since the last validation. This flag does not indicate that this view itself needs re-arranging, but rather that some descendant may need to be re-arranged with its existing rectangle (e.g., a visual state change that affects only internal layout).
DescendantHitTestChanged = 256One or more descendants of this View have their hit testing changed. They will probably return a new result for the same Point.
DescendantRenderChanged = 64One or more descendants of this View have had their RenderChanged flag set since the last validation. This is a hint that rendering work exists below, even if this view itself does not need re-rendering.
HitTestChanged = 128This view's HitTest(Point) changed. It will probably return a new results for the same Point.
MeasureChanged = 4The View has changed since its last measure. It will likely return a different desired size if measured again with the same constraints.
RenderChanged = 32The View has changed visually since its last render pass, and RenderCore(IContext) produce different output even if rendered within the same frame and context.