ComponentFactory.Quicksilver.Layout.GridLayout.TargetArrangeSize C# (CSharp) Method

TargetArrangeSize() private method

private TargetArrangeSize ( UIElement element ) : Rect
element UIElement
return System.Windows.Rect
        private Rect TargetArrangeSize(UIElement element)
        {
            // Find the row/col definitions for this element
            int col = Math.Max(0, Math.Min(_columns.Count - 1, GetColumn(element)));
            int row = Math.Max(0, Math.Min(_rows.Count - 1, GetRow(element)));

            // Find the row/col spanning definitions for this element (convert to zero based spanning)
            int colSpan = Math.Max(Math.Min(_columns.Count - col, GetColumnSpan(element)), 1) - 1;
            int rowSpan = Math.Max(Math.Min(_rows.Count - row, GetRowSpan(element)), 1) - 1;

            return new Rect(_proxyColumns[col].MinTotal, 
                            _proxyRows[row].MinTotal, 
                            _proxyColumns[col + colSpan].MinTotal + _proxyColumns[col + colSpan].MinSize - _proxyColumns[col].MinTotal,
                            _proxyRows[row + rowSpan].MinTotal + _proxyRows[row + rowSpan].MinSize - _proxyRows[row].MinTotal);

        }