Beispiel #1
0
        public override Control Generate(DynamicLayout layout)
        {
            if (rows.Count == 0)
            {
                return(null);
            }
            int cols = rows.Where(r => r != null).Max(r => r.Items.Count);

            this.Table = new TableLayout(cols, rows.Count);
            var tableLayout = this.Table;
            var padding     = this.Padding ?? layout.DefaultPadding;

            if (padding != null)
            {
                tableLayout.Padding = padding.Value;
            }

            var spacing = this.Spacing ?? layout.DefaultSpacing;

            if (spacing != null)
            {
                tableLayout.Spacing = spacing.Value;
            }

            var scalingRow = new DynamicRow();

            scalingRow.Items.Add(new DynamicControl {
                YScale = true
            });
            for (int cy = 0; cy < rows.Count; cy++)
            {
                var row = rows[cy];
                if (row == null)
                {
                    row = scalingRow;
                }
                for (int cx = 0; cx < row.Items.Count; cx++)
                {
                    var item = row.Items[cx];
                    if (item == null)
                    {
                        item = new DynamicControl {
                            XScale = true
                        }
                    }
                    ;
                    item.Generate(layout, tableLayout, cx, cy);
                }
            }
            return(Table);
        }

        void ISupportInitialize.BeginInit()
        {
        }

        void ISupportInitialize.EndInit()
        {
            foreach (var row in rows)
            {
                row.Table = this;
            }
        }
    }
Beispiel #2
0
        public override Control Generate(DynamicLayout layout)
        {
            if (rows.Count == 0)
            {
                return(null);
            }
            int cols = rows.Where(r => r != null).Max(r => r.Items.Count);

            if (Container == null)
            {
                Container   = new Panel();
                this.Layout = new TableLayout(Container, cols, rows.Count);
            }
            else
            {
                this.Layout = new TableLayout(null, cols, rows.Count);
                layout.SetBaseInnerLayout();
            }
            var tableLayout = this.Layout;
            var padding     = this.Padding ?? layout.DefaultPadding;

            if (padding != null)
            {
                tableLayout.Padding = padding.Value;
            }

            var spacing = this.Spacing ?? layout.DefaultSpacing;

            if (spacing != null)
            {
                tableLayout.Spacing = spacing.Value;
            }

            var scalingRow = new DynamicRow();

            scalingRow.Items.Add(new DynamicControl {
                YScale = true
            });
            for (int cy = 0; cy < rows.Count; cy++)
            {
                var row = rows[cy];
                if (row == null)
                {
                    row = scalingRow;
                }
                for (int cx = 0; cx < row.Items.Count; cx++)
                {
                    var item = row.Items[cx];
                    if (item == null)
                    {
                        item = new DynamicControl {
                            XScale = true
                        }
                    }
                    ;
                    item.Generate(layout, tableLayout, cx, cy);
                }
            }
            return(Container);
        }
    }