예제 #1
0
        public void InvalidateArrange()
        {
            if (ShouldInterceptInvalidate)
            {
                return;
            }

            if (IsArrangeDirty)
            {
                return;                 // Already dirty
            }

            SetLayoutFlags(LayoutFlag.ArrangeDirty);

            if (FeatureConfiguration.UIElement.UseInvalidateArrangePath && !IsArrangeDirtyPathDisabled)
            {
                InvalidateParentArrangeDirtyPath();
            }
            else
            {
                (this.GetParent() as UIElement)?.InvalidateArrange();
                if (IsVisualTreeRoot)
                {
                    Window.InvalidateArrange();
                }
            }
        }
예제 #2
0
 private void InvalidateParentArrangeDirtyPath()
 {
     if (this.GetParent() is UIElement parent)
     {
         parent.InvalidateArrangeDirtyPath();
     }
     else
     {
         Window.InvalidateArrange();
     }
 }
예제 #3
0
        private void InvalidateParentArrangeDirtyPath()
        {
            if (this.GetParent() is UIElement parent)             //TODO: Should this use VisualTree.GetParent as fallback? https://github.com/unoplatform/uno/issues/8978
            {
                parent.InvalidateArrangeDirtyPath();
            }
            else             //TODO: Why not check IsVisualTreeRoot as in InvalidateParentMeasureDirtyPath?
            {
#if __SKIA__
                XamlRoot?.InvalidateArrange();
#else
                Window.InvalidateArrange();
#endif
            }
        }
예제 #4
0
        public void InvalidateArrange()
        {
            if (ShouldInterceptInvalidate)
            {
                return;
            }

            if (IsArrangeDirty)
            {
                return;                 // Already dirty
            }

            SetLayoutFlags(LayoutFlag.ArrangeDirty);
            if (this.GetParent() is UIElement parent)
            {
                parent.InvalidateArrange();
            }
            else
            {
                Window.InvalidateArrange();
            }
        }