private int GetColumnsCount(Enum_UIColumnsType uIColumnsType) { if (ColumnsCount == 1) { if (uIColumnsType == Enum_UIColumnsType.Normal) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Half) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Full) { return(1); } } else if (ColumnsCount == 2) { if (uIColumnsType == Enum_UIColumnsType.Normal) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Half) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Full) { return(2); } } else if (ColumnsCount == 3) { if (uIColumnsType == Enum_UIColumnsType.Normal) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Half) { return(2); } else if (uIColumnsType == Enum_UIColumnsType.Full) { return(3); } } else if (ColumnsCount == 4) { if (uIColumnsType == Enum_UIColumnsType.Normal) { return(1); } else if (uIColumnsType == Enum_UIColumnsType.Half) { return(2); } else if (uIColumnsType == Enum_UIColumnsType.Full) { return(4); } } return(1); }
private void AddControlToGrid(FrameworkElement mainElement, Enum_UIColumnsType UIColumnsType, short UIRowsCount , FrameworkElement labelElement) { int logicalColumnCount = GetColumnsCount(UIColumnsType); int physicalColumnCount = Convert.ToInt16(logicalColumnCount * 2 - 1); int rowsCount = 0; bool makeRowHeightAuto = false; if (UIRowsCount == -1) { rowsCount = 1; makeRowHeightAuto = true; } else if (UIRowsCount == 0) { rowsCount = 1; } else { rowsCount = UIRowsCount; } Tuple <int, int> GetReadyCursor = GetReadeyCursor(physicalColumnCount, rowsCount); CurrentColumn = GetReadyCursor.Item1; CurrentRow = GetReadyCursor.Item2; Grid.SetColumn(mainElement, CurrentColumn - (labelElement != null ? 0 : 1)); Grid.SetRow(mainElement, CurrentRow); if (makeRowHeightAuto) { Grid.RowDefinitions[CurrentRow].Height = GridLength.Auto; } if (physicalColumnCount > 1) { Grid.SetColumnSpan(mainElement, physicalColumnCount + (labelElement != null ? 0 : 1)); } else if (labelElement == null) { Grid.SetColumnSpan(mainElement, physicalColumnCount + 1); } if (rowsCount > 1) { var rowcount = Grid.RowDefinitions.Count - 1; for (int i = CurrentRow; i <= CurrentRow + rowsCount - 1; i++) { if (Grid.RowDefinitions.Count - 1 < i) { AddRow(); } } Grid.SetRowSpan(mainElement, rowsCount); mainElement.VerticalAlignment = VerticalAlignment.Stretch; } for (int col = CurrentColumn; col < CurrentColumn + physicalColumnCount; col++) { for (int row = CurrentRow; row < CurrentRow + rowsCount; row++) { ReservedCells.Add(new Tuple <int, int>(col, row)); } } if (labelElement != null) { Grid.SetColumn(labelElement, CurrentColumn - 1); Grid.SetRow(labelElement, CurrentRow); for (int row = CurrentRow; row < CurrentRow + rowsCount; row++) { ReservedCells.Add(new Tuple <int, int>(CurrentColumn - 1, row)); } Grid.Children.Add(labelElement); } CurrentColumn += physicalColumnCount + 1; //foreach (var item in Grid.Children) //{ // if (item == mainElement) // return; //} Grid.Children.Add(mainElement); }