Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 public MultiControlPage(string header, GridRowColSettings settings, params GridItem[] pageItems)
     : this(header)
 {
     InitializePage(settings, pageItems);
 }