Пример #1
0
 public virtual void SetChildRect(BaseFrameworkElement child, Rect rect, LayoutOverrides layoutOverrides, LayoutOverrides overridesToIgnore, LayoutOverrides nonExplicitOverrides, SetRectMode setRectMode)
 {
     overridesToIgnore = this.AdjustOverrideToIgnore(child, overridesToIgnore);
     if (this.suppressLayoutRoundingCount == 0 && (LayoutRoundingHelper.GetLayoutRoundingStatus((SceneElement)child) & LayoutRoundingStatus.ShouldSnapToPixel) != LayoutRoundingStatus.Off)
     {
         rect = LayoutRoundingHelper.RoundRect(child.Platform.GeometryHelper, rect);
     }
     using (child.ViewModel.ScopeViewObjectCache())
     {
         using (GridLayoutDesigner.TryCanvasDesignMode(child, rect.Size, true, true))
         {
             LayoutUtilities.EnterLayoutMode();
             LayoutOperation layoutOperation = this.CreateLayoutOperation(child);
             if (layoutOverrides == LayoutOverrides.RecomputeDefault)
             {
                 layoutOverrides = this.InternalComputeOverrides(child, layoutOperation);
             }
             layoutOperation.SetRect(rect, layoutOverrides, overridesToIgnore, nonExplicitOverrides, setRectMode);
             LayoutUtilities.ExitLayoutMode();
         }
     }
 }
Пример #2
0
        protected virtual LayoutOverrides InternalComputeOverrides(BaseFrameworkElement element, LayoutOperation layoutOperation)
        {
            if (!element.IsAttached)
            {
                return(LayoutOverrides.None);
            }
            Rect childRect = this.GetChildRect(element);

            return(layoutOperation.ComputeOverrides(childRect));
        }
Пример #3
0
        public LayoutOverrides ComputeOverrides(BaseFrameworkElement element)
        {
            LayoutOperation layoutOperation = this.CreateLayoutOperation(element);

            return(this.InternalComputeOverrides(element, layoutOperation));
        }