Ejemplo n.º 1
0
        private void OnLayoutHeaderedCell(HeaderedControlCell cell)
        {
            var grid = ((IPairable)cell).Pair as IGridCell;

            if (grid == null)
            {
                return;
            }

            grid.Columns.Clear();
            grid.Rows.Clear();

            grid.Columns.Add(Column.OneStar);
            grid.Rows.Add(Row.AutoSized);

            cell.Header.Font                = Font.PreferredHeaderFont;
            cell.Header.Lines               = 1;
            cell.Header.VerticalAlignment   = VerticalAlignment.Center;
            cell.Header.HorizontalAlignment = HorizontalAlignment.Stretch;
            cell.Header.RowIndex            = 0;

            foreach (var boolSwitch in grid.Children.OfType <ISwitch>())
            {
                grid.Columns.Insert(0, Column.AutoSized);

                boolSwitch.VerticalAlignment = VerticalAlignment.Center;
                boolSwitch.Margin            = new Thickness(0, 0, Thickness.LargeHorizontalSpacing, 0);
                boolSwitch.RowIndex          = 0;
                boolSwitch.ColumnIndex       = grid.Columns.Count - 2;
            }

            cell.Header.ColumnIndex = grid.Columns.Count - 1;

            foreach (var control in grid.Children.Where(c => c != cell.Header && !(c is ISwitch)))
            {
                grid.Rows.Add(Row.AutoSized);

                control.RowIndex    = grid.Rows.Count - 1;
                control.ColumnIndex = 0;
                control.ColumnSpan  = grid.Columns.Count;
                control.Margin      = new Thickness(0, Thickness.SmallVerticalSpacing, 0, 0);

                if (control is IButton || control is IDatePicker || control is ITimePicker)
                {
                    control.HorizontalAlignment = HorizontalAlignment.Stretch;
                }

                if (control is ITextArea)
                {
                    control.VerticalAlignment   = VerticalAlignment.Stretch;
                    grid.Rows[control.RowIndex] = Row.OneStar;
                }
                else
                {
                    control.VerticalAlignment = VerticalAlignment.Top;
                }
            }
        }
Ejemplo n.º 2
0
        // if controls.count < 3 && all are image or switch then set beside
        private void OnLayoutHeaderedCell(HeaderedControlCell cell)
        {
            var grid = ((IPairable)cell).Pair as IGridBase;

            if (grid == null)
            {
                return;
            }
            var controls = grid.Children.Where(c => c != cell.Header).ToList();

            var first = controls.FirstOrDefault();

            if (controls.Count == 0 || controls.Count > 2 || !(first is ISwitch) && !(first is IImage))
            {
                return;
            }

            grid.Columns.Clear();
            grid.Rows.Clear();
            grid.Columns.Add(Column.OneStar);
            grid.Columns.Add(Column.AutoSized);

            grid.Rows.Add(Row.AutoSized);
            grid.Rows.Add(Row.AutoSized);

            if (!string.IsNullOrEmpty(cell.Header.Text))
            {
                cell.Header.Font                = Font.PreferredHeaderFont.Size > 0 ? Font.PreferredHeaderFont : Font.PreferredLabelFont;
                cell.Header.Lines               = 1;
                cell.Header.VerticalAlignment   = VerticalAlignment.Center;
                cell.Header.HorizontalAlignment = HorizontalAlignment.Left;
                cell.Header.RowIndex            = 0;
                cell.Header.ColumnIndex         = 0;
                first.Margin = new Thickness(Thickness.LargeHorizontalSpacing, 0, 0, 0);
            }
            else
            {
                first.Margin = new Thickness();
            }

            first.VerticalAlignment = VerticalAlignment.Center;
            first.RowIndex          = 0;
            first.ColumnIndex       = 1;

            if (string.IsNullOrEmpty(cell.Header.Text))
            {
                grid.Columns[2] = new Column(0, LayoutUnitType.Absolute);
            }
        }
Ejemplo n.º 3
0
        // if controls.count == 1 then set beside
        // if controls.count < 3 && all are picker, image, selectlist, or switch then set beside
        private void OnLayoutHeaderedCell(HeaderedControlCell cell)
        {
            var grid = ((IPairable)cell).Pair as IGridBase;

            if (grid == null)
            {
                return;
            }

            grid.Columns.Clear();
            grid.Rows.Clear();

            var controls = grid.Children.Where(c => c != cell.Header).ToList();

            grid.Columns.Add(Column.OneStar);
            grid.Rows.Add(Row.AutoSized);

            cell.Header.Font                = Font.PreferredHeaderFont.Size > 0 ? Font.PreferredHeaderFont : Font.PreferredLabelFont;
            cell.Header.Lines               = 1;
            cell.Header.VerticalAlignment   = VerticalAlignment.Center;
            cell.Header.HorizontalAlignment = HorizontalAlignment.Left;
            cell.Header.RowIndex            = 0;
            cell.Header.ColumnIndex         = 0;

            int firstLabel = controls.FindIndex(c => c is ILabel);

            if (firstLabel < 0)
            {
                firstLabel = controls.Count;
            }

            var first = controls.FirstOrDefault();

            if (firstLabel == 1 && !(first is ITextArea))
            {
                first.Margin = new Thickness((first is ISlider) ? Thickness.LeftMargin : Thickness.LargeHorizontalSpacing, 0, 0, 0);

                if (first is ITextBox || first is IPasswordBox || first is ISlider)
                {
                    grid.Columns[0] = Column.AutoSized;
                    grid.Columns.Insert(1, Column.OneStar);
                }
                else
                {
                    grid.Columns.Insert(1, Column.AutoSized);
                }

                first.VerticalAlignment = VerticalAlignment.Center;
                first.RowIndex          = 0;
                first.ColumnIndex       = 1;
            }
            else if (firstLabel == 2 && !(controls.Any(c => c is ITextBox || c is IPasswordBox || c is ITextArea || c is ISlider)))
            {
                grid.Columns.Insert(1, Column.AutoSized);
                grid.Columns.Insert(2, Column.AutoSized);

                first.Margin            = new Thickness(Thickness.LargeHorizontalSpacing, 0, Thickness.SmallHorizontalSpacing, 0);
                first.VerticalAlignment = VerticalAlignment.Center;
                first.RowIndex          = 0;
                first.ColumnIndex       = 1;

                var second = controls[1];
                second.VerticalAlignment = VerticalAlignment.Center;
                second.RowIndex          = 0;
                second.ColumnIndex       = 2;
            }
            else
            {
                for (int i = 0; i < firstLabel; i++)
                {
                    var control = controls[i];
                    if (control is ITextArea)
                    {
                        grid.Rows.Add(Row.OneStar);
                        control.VerticalAlignment = VerticalAlignment.Stretch;
                    }
                    else
                    {
                        grid.Rows.Add(Row.AutoSized);
                        control.VerticalAlignment = VerticalAlignment.Center;
                    }

                    control.Margin      = new Thickness(0, Thickness.SmallVerticalSpacing, 0, 0);
                    control.RowIndex    = grid.Rows.Count - 1;
                    control.ColumnIndex = 0;
                }
            }

            for (int i = firstLabel; i < controls.Count; i++)
            {
                grid.Rows.Add(Row.AutoSized);

                var control = controls[i];
                control.Margin            = new Thickness(0, Thickness.SmallVerticalSpacing, 0, 0);
                control.VerticalAlignment = VerticalAlignment.Center;
                control.RowIndex          = grid.Rows.Count - 1;
                control.ColumnIndex       = 0;
                control.ColumnSpan        = grid.Columns.Count;
            }
        }