Пример #1
0
        private Rect getProperArrangeRect(UIElement element)
        {
            Rect arrangeRect = element.PreviousArrangeRect;

            // ELements without a parent (top level) get Arrange at DesiredSize
            // if they were measured "to content" (as infinity indicates).
            // If we arrange the element that is temporarily disconnected
            // so it is not a top-level one, the assumption is that it will be
            // layout-invalidated and/or recomputed by the parent when reconnected.
            if (element.GetUIParentNo3DTraversal() == null)
            {
                arrangeRect.X = arrangeRect.Y = 0;

                if (double.IsPositiveInfinity(element.PreviousConstraint.Width))
                {
                    arrangeRect.Width = element.DesiredSize.Width;
                }

                if (double.IsPositiveInfinity(element.PreviousConstraint.Height))
                {
                    arrangeRect.Height = element.DesiredSize.Height;
                }
            }

            return(arrangeRect);
        }
Пример #2
0
        private void markTreeDirty(UIElement e) 
        {
            //walk up until we are the topmost UIElement in the tree. 
            while(true)
            {
                UIElement p = e.GetUIParentNo3DTraversal() as UIElement;
                if(p == null) break; 
                e = p;
            } 
 
            markTreeDirtyHelper(e);
            MeasureQueue.Add(e); 
            ArrangeQueue.Add(e);
        }
Пример #3
0
        private void markTreeDirty(UIElement e)
        {
            //walk up until we are the topmost UIElement in the tree.
            while (true)
            {
                UIElement p = e.GetUIParentNo3DTraversal() as UIElement;
                if (p == null)
                {
                    break;
                }
                e = p;
            }

            markTreeDirtyHelper(e);
            MeasureQueue.Add(e);
            ArrangeQueue.Add(e);
        }
Пример #4
0
        private Rect getProperArrangeRect(UIElement element)
        { 
            Rect arrangeRect = element.PreviousArrangeRect;

            // ELements without a parent (top level) get Arrange at DesiredSize
            // if they were measured "to content" (as infinity indicates). 
            // If we arrange the element that is temporarily disconnected
            // so it is not a top-level one, the assumption is that it will be 
            // layout-invalidated and/or recomputed by the parent when reconnected. 
            if (element.GetUIParentNo3DTraversal() == null)
            { 
                arrangeRect.X = arrangeRect.Y = 0;

                if (double.IsPositiveInfinity(element.PreviousConstraint.Width))
                    arrangeRect.Width = element.DesiredSize.Width; 

                if (double.IsPositiveInfinity(element.PreviousConstraint.Height)) 
                    arrangeRect.Height = element.DesiredSize.Height; 
            }
 
            return arrangeRect;
        }