Пример #1
0
        public override void LayoutCore()
        {
            const int indent = 18;

            Layouter.PutAt(this, CollapseButton, CollapseButton.Box.Margins.Left);
            Layouter.PutRight(CollapseButton, HMembers, indent - CollapseButton.Bounds.Size.X);
            CollapseButton.Bounds.Location.Y += (HMembers.Bounds.Size.Y - CollapseButton.Bounds.Size.Y) / 2;

            if (VMembers.Children.Count > 0)
            {
                CollapseButton.Visible = true;

                if (this.Collapsed)
                {
                    VMembers.Visible   = false;
                    this.Bounds.Size.X = HMembers.Bounds.Right - this.Bounds.Location.X;
                    this.Bounds.Size.Y = HMembers.Bounds.Bottom - this.Bounds.Location.Y;
                }
                else
                {
                    VMembers.Visible = true;
                    Layouter.PutUnder(HMembers, VMembers);
                    this.Bounds.Size.X = HMembers.Bounds.Right - this.Bounds.Location.X;
                    this.Bounds.Size.Y = VMembers.Bounds.Bottom - this.Bounds.Location.Y;
                    Layouter.GrowToInclude(this, HMembers);
                    Layouter.GrowToInclude(this, VMembers);
                    this.Bounds.Size.Add(1);
                }
            }
            else
            {
                CollapseButton.Visible = false;
                VMembers.Visible       = false;
                Layouter.PutAround(CollapseButton, HMembers, this);
                this.Bounds.Size.X = HMembers.Bounds.Right - this.Bounds.Location.X;
                this.Bounds.Size.Y = HMembers.Bounds.Bottom - this.Bounds.Location.Y;
            }
        }