PM_Size drawableSurface() { PM_Size _s = new PM_Size(this.ActualHeight, this.ActualWidth); if (__showVScrollBar) { _s.width -= __scrollBarsWidth; } if (__showHScrollBar) { _s.height -= __scrollBarsWidth; } return(_s); }
private void renderContent() { double _heightdelta = 0; double _widthdelta = 0; PM_GridRow _pmRow; PM_GridColumn _pmColumn; int _firstVisualColumn = 0; int _visualRow = 0; int _visualColumn = 0; PM_Size _size = drawableSurface(); bool _showVHeaders = (__vHeaderVisible == true && __vHeadersWidth > 0); bool _showHHeaders = (__hHeaderVisible == true && __hHeadearsHeight > 0); bool _columnsDefinitionsDisplayed = false; detachDisplayedControls(); if (_showVHeaders) { _widthdelta = addColumnDefinition(__vHeadersWidth); _firstVisualColumn = 1; } if (_showHHeaders) { _heightdelta = addRowDefinition(__hHeadearsHeight); _visualRow = 1; } _visualColumn = _firstVisualColumn; for (int _i = (int)__vScrollBar.Value; _i < rowCount; _i++) { if (_heightdelta <= _size.height) { _pmRow = __model.row(_i); if (_pmRow == null || _pmRow.visibility == Visibility.Hidden) { continue; } _heightdelta += addRowDefinition(_pmRow.height); if (_showVHeaders) { _pmRow.header = header(_pmRow.header, _i); setControlToGrid(0, _visualRow, new cellInfo(_pmRow.header, 0, _i)); } for (int _j = (int)__hScrollBar.Value; _j < columnCount; _j++) { if (_widthdelta <= _size.width) { _pmColumn = __model.column(_j); if (_pmColumn == null || _pmColumn.visibility == Visibility.Hidden) { continue; } if (!_columnsDefinitionsDisplayed) { addColumnDefinition(_pmColumn.width); if (_showHHeaders) { _pmColumn.header = header(_pmColumn.header, _j); setControlToGrid(_visualColumn, 0, new cellInfo(_pmColumn.header, _j, 0)); } } PM_GridCell _cell = _pmRow.cell(_j); setControlToGrid(_visualColumn, _visualRow, new cellInfo(_cell, _j, _i)); _widthdelta += _pmColumn.width; ++_visualColumn; } else { break; } } _columnsDefinitionsDisplayed = true; _visualColumn = _firstVisualColumn; ++_visualRow; _widthdelta = (_showHHeaders) ? __vHeadersWidth : 0; } } _showVHeaders = false; }