/// <summary> /// Creates a grid with the corresponding GridLength values /// </summary> /// <param name="GridWidth"></param> /// <param name="GridHeight"></param> /// <param name="Columns"></param> /// <param name="Rows"></param> /// <param name="Background"></param> /// <returns></returns> public static Grid CreateGrid(double GridWidth, double GridHeight, GridLength[] Columns, GridLength[] Rows, Brush Background, GridLineOptions GridLines = null, Boolean AutoSizeWidth = false, Boolean AutoSizeHeight = false) { Grid nGrid; if (GridLines is null) { nGrid = new Grid(); } else { nGrid = new CustomGridWithLines(); (nGrid as CustomGridWithLines).ShowCustomGridLines = true; (nGrid as CustomGridWithLines).GridLineSettings = GridLines; } if (!AutoSizeWidth) { nGrid.Width = GridWidth; } else { nGrid.MaxWidth = GridWidth; } if (!AutoSizeHeight) { nGrid.Height = GridHeight; } else { nGrid.MaxHeight = GridHeight; } nGrid.Background = Background; for (int columns = 0; columns < Columns.Length; columns++) { ColumnDefinition cd = new ColumnDefinition(); cd.Width = Columns[columns]; nGrid.ColumnDefinitions.Add(cd); } for (int rows = 0; rows < Rows.Length; rows++) { RowDefinition rd = new RowDefinition(); rd.Height = Rows[rows]; nGrid.RowDefinitions.Add(rd); } return(nGrid); }
/// <summary> /// Creates a 3 Part grid on a Canvas and returns those as Canvas /// </summary> /// <param name="On">Target Canvas</param> /// <param name="HeaderHeight">Height of the Header</param> /// <param name="FooterHeight">Height of the Footer</param> /// <param name="HeaderCanvas">Header Canvas</param> /// <param name="ContentCanvas">Content Canvas</param> /// <param name="FooterCanvas">Footer Canvas</param> /// <param name="GridLines">optional Gridline Options for the grid created</param> public void CreateHeaderFooter(Canvas On, GridLength HeaderHeight, GridLength FooterHeight, out Canvas HeaderCanvas, out Canvas ContentCanvas, out Canvas FooterCanvas, GridLineOptions GridLines = null) { double ContentHeight = On.Height - HeaderHeight.Value - FooterHeight.Value; Grid nGrid = GridHelper.CreateGrid(On.Width, On.Height, new GridLength[] { new GridLength(On.Width) }, new GridLength[] { HeaderHeight, new GridLength(), FooterHeight }, Brushes.Transparent, GridLines); HeaderCanvas = new Canvas(); HeaderCanvas.Width = On.Width; HeaderCanvas.Height = HeaderHeight.Value; GridHelper.PutInGrid(HeaderCanvas, nGrid, 0, 0); ContentCanvas = new Canvas(); ContentCanvas.Width = On.Width; ContentCanvas.Height = ContentHeight; //Size of Grids are not calculated before actual rendering - thus actualheight = 0 GridHelper.PutInGrid(ContentCanvas, nGrid, 0, 1); FooterCanvas = new Canvas(); FooterCanvas.Width = On.Width; FooterCanvas.Height = FooterHeight.Value; GridHelper.PutInGrid(FooterCanvas, nGrid, 0, 2); DocHelper.PutElementOn(nGrid, On); }
/// <summary> /// Creates a grid with equally sized columns and rows /// </summary> /// <param name="GridWidth"></param> /// <param name="GridHeight"></param> /// <param name="GridColumns"></param> /// <param name="GridRows"></param> /// <param name="Background"></param> /// <returns></returns> public static Grid CreateEquiSizedGrid(double GridWidth, double GridHeight, int GridColumns, int GridRows, Brush Background, GridLineOptions GridLines = null) { double CellWidth = GridWidth / GridColumns; double CellHeight = GridHeight / GridRows; GridLength[] columns = (new GridLength[GridColumns]); for (int i = 0; i < columns.Length; i++) { columns[i] = new GridLength(CellWidth); } GridLength[] rows = (new GridLength[GridRows]); for (int i = 0; i < rows.Length; i++) { rows[i] = new GridLength(CellHeight); } return(CreateGrid(GridWidth, GridHeight, columns, rows, Background, GridLines)); }