public MultiControlPage(string header, GridRowColSettings settings, params UserControl[] userControls) : this(header) { int maxColumnCount = 3; int currRow = 0; int currCol = 0; var pageItems = new GridItem[userControls.Length]; for (int i = 0; i < userControls.Length; i++) { pageItems[i] = new GridItem(userControls[i], currCol, currRow); // update column and row if (currCol >= maxColumnCount - 1) { currRow += 1; currCol = 0; } else { currCol += 1; } } // initialize page items InitializePage(settings, pageItems); }
private void InitializePage(GridRowColSettings settings, GridItem[] pageItems) { // create grid rows int rowCount = pageItems.Max(item => item.GridRow); for (int i = 0; i <= rowCount; i++) { var rowDefinition = new RowDefinition(); // set settings for row definition if (settings != null) { rowDefinition.Height = settings.GetRowHeight(i); } elemsGrid.RowDefinitions.Add(rowDefinition); } // create grid columns int columnCount = pageItems.Max(item => item.GridColumn); for (int i = 0; i <= columnCount; i++) { var columnDefinition = new ColumnDefinition(); // set settings for row definition if (settings != null) { columnDefinition.Width = settings.GetColumnWidth(i); } else if (i != 0) { columnDefinition.Width = GridLength.Auto; } elemsGrid.ColumnDefinitions.Add(columnDefinition); } foreach (var pageItem in pageItems) { // set grid settings Grid.SetColumn(pageItem.Control, pageItem.GridColumn); Grid.SetRow(pageItem.Control, pageItem.GridRow); Grid.SetColumnSpan(pageItem.Control, pageItem.GridColumnSpan); Grid.SetRowSpan(pageItem.Control, pageItem.GridRowSpan); // add control to grid elemsGrid.Children.Add(pageItem.Control); } }
public MultiControlPage(string header, GridRowColSettings settings, params GridItem[] pageItems) : this(header) { InitializePage(settings, pageItems); }