コード例 #1
0
        protected override Size MeasureOverride(Size availableSize)
        {
            double doubleBorderThickness = GridControl.ShowBorder ? GridControl.BorderThickness * 2.0 : 0.0;
            double columnHeadersHeight   = 0.0;

            foreach (var columnHeader in ColumnHeaders)
            {
                columnHeader.Measure(new Size(availableSize.Width - doubleBorderThickness, Double.PositiveInfinity));
                columnHeadersHeight = Math.Max(columnHeadersHeight, columnHeader.DesiredSize.Height);
            }
            columnHeadersHeight += GridControl.HorizontalLinesThickness;

            double columnHeadersWidth = ColumnHeaders.Sum(ch => ch.Column.Width + GridControl.VerticalLinesThickness);

            //TODO check negative height
            CellsPanel.Measure(new Size(availableSize.Width - doubleBorderThickness,
                                        availableSize.Height - doubleBorderThickness - columnHeadersHeight));
            return(new Size(columnHeadersWidth + doubleBorderThickness,
                            columnHeadersHeight + CellsPanel.DesiredSize.Height + doubleBorderThickness));
        }