예제 #1
0
        private void RecountColumnWidths()
        {
            _columnSizes.Clear();

            SetExtraordinaryRealColumns();

            if (_drawBuffer == null)
            {
                return;
            }
            if (GridScrollAreaWidth > 16)
            {
                if (_columnSizes.MaxSize.HasValue && GridScrollAreaWidth - 16 < _columnSizes.MaxSize)
                {
                    _columnSizes.MaxSize = GridScrollAreaWidth - 16;
                }
            }

            if (IsWide)
            {
                return;
            }
            if (_model == null)
            {
                return;
            }
            int rowCount = _isTransposed ? _modelColumnCount : _modelRowCount;
            int colCount = _isTransposed ? _modelRowCount : _modelColumnCount;

            for (int col = 0; col < colCount; col++)
            {
                var cell = _isTransposed ? _model.GetRowHeader(this, col) : _model.GetColumnHeader(this, col);
                _columnSizes.PutSizeOverride(col, GetCellContentWidth(cell) + 2 * CellPaddingHorizontal);
            }

            int visRows = VisibleRowCount;
            int row0    = FirstVisibleRowScrollIndex + _rowSizes.FrozenCount;

            for (int row = row0; row < Math.Min(row0 + visRows, rowCount); row++)
            {
                for (int col = 0; col < colCount; col++)
                {
                    var cell = _isTransposed ? _model.GetCell(this, col, row) : _model.GetCell(this, row, col);
                    _columnSizes.PutSizeOverride(col, GetCellContentWidth(cell, _columnSizes.MaxSize) + 2 * CellPaddingHorizontal);
                }
            }

            _columnSizes.BuildIndex();
        }
예제 #2
0
        private void RecountRowHeights()
        {
            _rowSizes.Clear();
            SetExtraordinaryRealRows();
            if (_drawBuffer == null)
            {
                return;
            }
            if (GridScrollAreaHeight > 16)
            {
                _rowSizes.MaxSize = GridScrollAreaHeight - 16;
            }

            CountVisibleRowHeights();
        }