示例#1
0
文件: Grid.cs 项目: dstiert/Myra
        private void LayoutControl(Widget control)
        {
            var gridPosition = GetActualGridPosition(control);
            var col          = gridPosition.X;
            var row          = gridPosition.Y;

            var cellSize = Point.Zero;

            for (var i = col; i < col + control.GridSpanX; ++i)
            {
                cellSize.X += _colWidths[i];

                if (i < col + control.GridSpanX - 1)
                {
                    cellSize.X += _columnSpacing;
                }
            }

            for (var i = row; i < row + control.GridSpanY; ++i)
            {
                cellSize.Y += _rowHeights[i];

                if (i < row + control.GridSpanY - 1)
                {
                    cellSize.Y += _rowSpacing;
                }
            }

            var bounds = ActualBounds;

            control.Layout(new Rectangle(bounds.Left + _cellLocationsX[col], bounds.Top + _cellLocationsY[row], cellSize.X, cellSize.Y));
        }
示例#2
0
        public override void Arrange()
        {
            base.Arrange();

            if (Widget == null)
            {
                return;
            }

            Widget.Layout(ActualBounds);
        }
示例#3
0
        private void LayoutControl(Widget control)
        {
            var gridPosition = GetActualGridPosition(control);
            var col          = gridPosition.X;
            var row          = gridPosition.Y;

            var cellSize = Point.Zero;

            for (var i = col; i < col + control.GridSpanX; ++i)
            {
                cellSize.X += _colWidths[i];
            }

            for (var i = row; i < row + control.GridSpanY; ++i)
            {
                cellSize.Y += _rowHeights[i];
            }

            control.Layout(new Rectangle(_cellLocationsX[col], _cellLocationsY[row], cellSize.X, cellSize.Y));
        }
示例#4
0
 private void LayoutControl(Widget control)
 {
     control.Layout(ActualBounds);
 }
示例#5
0
文件: Grid.cs 项目: mystborn/Myra
        private void LayoutControl(Widget control)
        {
            var gridPosition = GetActualGridPosition(control);
            var col          = gridPosition.X;
            var row          = gridPosition.Y;

            var cellSize = Point.Zero;

            for (var i = col; i < col + control.GridColumnSpan; ++i)
            {
                cellSize.X += _colWidths[i];

                if (i < col + control.GridColumnSpan - 1)
                {
                    cellSize.X += _columnSpacing;
                }
            }

            for (var i = row; i < row + control.GridRowSpan; ++i)
            {
                cellSize.Y += _rowHeights[i];

                if (i < row + control.GridRowSpan - 1)
                {
                    cellSize.Y += _rowSpacing;
                }
            }

            var bounds = ActualBounds;

            var rect = new Rectangle(bounds.Left + _cellLocationsX[col], bounds.Top + _cellLocationsY[row], cellSize.X, cellSize.Y);

            if (rect.Right > bounds.Right)
            {
                rect.Width = bounds.Right - rect.X;
            }

            if (rect.Width < 0)
            {
                rect.Width = 0;
            }

            if (rect.Width > bounds.Width)
            {
                rect.Width = bounds.Width;
            }

            if (rect.Bottom > bounds.Bottom)
            {
                rect.Height = bounds.Bottom - rect.Y;
            }

            if (rect.Height < 0)
            {
                rect.Height = 0;
            }

            if (rect.Height > bounds.Height)
            {
                rect.Height = bounds.Height;
            }

            control.Layout(rect);
        }