コード例 #1
0
ファイル: GroupBox.cs プロジェクト: zeroxist/MediaPortal-2
        protected override void ArrangeBorder(RectangleF finalRect)
        {
            float      headerLabelHeight = _headerLabel.DesiredSize.Height;
            float      halfLabelHeight   = headerLabelHeight / 2;
            float      halfThickness     = (float)BorderThickness / 2;
            float      insetY            = (float)Math.Max(halfThickness, halfLabelHeight) - halfThickness;
            RectangleF borderRect        = new RectangleF(finalRect.X, finalRect.Y + insetY,
                                                          finalRect.Width, finalRect.Height - insetY);

            base.ArrangeBorder(borderRect);
            const float realHeaderInset = HEADER_INSET_LINE + HEADER_INSET_SPACE;
            float       borderInsetX    = GetBorderCornerInsetX();

            _headerLabelRect = new RectangleF(
                finalRect.X + borderInsetX + realHeaderInset, finalRect.Y,
                finalRect.Width - (borderInsetX + realHeaderInset) * 2, headerLabelHeight);
            if (_headerLabelRect.Width < 0)
            {
                _headerLabelRect.Width = 0;
            }
            if (_headerLabelRect.Height > finalRect.Height)
            {
                _headerLabelRect.Height = finalRect.Height;
            }

            _headerLabel.Arrange(_headerLabelRect);
        }