Пример #1
0
        protected override void OnRenderSkinFormControlBox(SkinFormControlBoxRenderEventArgs e)
        {
            FormBase        form           = e.Form;
            Graphics        g              = e.Graphics;
            Rectangle       clipRectangle  = e.ClipRectangle;
            ControlBoxState controlBoxtate = e.ControlBoxtate;
            CmSysButton     cmSysButton    = e.CmSysButton;
            bool            active         = e.Active;
            bool            minimizeBox    = form.ControlBox && form.MinimizeBox;
            bool            maximizeBox    = form.ControlBox && form.MaximizeBox;

            switch (e.ControlBoxStyle)
            {
            case ControlBoxStyle.Minimize:
                this.RenderSkinFormMinimizeBoxInternal(g, clipRectangle, controlBoxtate, active, form);
                return;

            case ControlBoxStyle.Maximize:
                this.RenderSkinFormMaximizeBoxInternal(g, clipRectangle, controlBoxtate, active, minimizeBox, form.WindowState == FormWindowState.Maximized, form);
                return;

            case ControlBoxStyle.Close:
                this.RenderSkinFormCloseBoxInternal(g, clipRectangle, controlBoxtate, active, minimizeBox, maximizeBox, form);
                return;

            case ControlBoxStyle.CmSysBottom:
                this.RenderSkinFormCmSysBottomInternal(g, clipRectangle, controlBoxtate, active, form, cmSysButton);
                return;
            }
        }
        protected override void OnRenderSkinFormControlBox(SkinFormControlBoxRenderEventArgs e)
        {
            SkinForm        form           = e.Form;
            Graphics        graphics       = e.Graphics;
            Rectangle       clipRectangle  = e.ClipRectangle;
            ControlBoxState controlBoxtate = e.ControlBoxtate;
            bool            active         = e.Active;
            bool            minimizeBox    = form.ControlBox && form.MinimizeBox;
            bool            maximizeBox    = form.ControlBox && form.MaximizeBox;

            switch (e.ControlBoxStyle)
            {
            case ControlBoxStyle.Minimize:
                this.RenderSkinFormMinimizeBoxInternal(graphics, clipRectangle, controlBoxtate, active);
                break;

            case ControlBoxStyle.Maximize:
                this.RenderSkinFormMaximizeBoxInternal(graphics, clipRectangle, controlBoxtate, active, minimizeBox, form.WindowState == FormWindowState.Maximized);
                break;

            case ControlBoxStyle.Close:
                this.RenderSkinFormCloseBoxInternal(graphics, clipRectangle, controlBoxtate, active, minimizeBox, maximizeBox);
                break;
            }
        }
Пример #3
0
 public SkinFormControlBoxRenderEventArgs(SkinForm form, Graphics graphics, Rectangle clipRect, bool active, ControlBoxStyle controlBoxStyle, ControlBoxState controlBoxState) : base(graphics, clipRect)
 {
     this._form            = form;
     this._active          = active;
     this._controlBoxState = controlBoxState;
     this._controlBoxStyle = controlBoxStyle;
 }
 public SkinFormControlBoxRenderEventArgs(CCSkinMain form, Graphics graphics, Rectangle clipRect, bool active, CCWin.ControlBoxStyle controlBoxStyle, ControlBoxState controlBoxState)
     : base(graphics, clipRect)
 {
     this._form = form;
     this._active = active;
     this._controlBoxState = controlBoxState;
     this._controlBoxStyle = controlBoxStyle;
 }
        private void RenderSkinFormCloseBoxInternal(
            Graphics g,
            Rectangle rect,
            ControlBoxState state,
            bool active,
            bool minimizeBox,
            bool maximizeBox)
        {
            Color baseColor = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                baseColor = ColorTable.ControlCloseBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                baseColor = ColorTable.ControlCloseBoxHover;
            }
            else
            {
                baseColor = active ?
                            ColorTable.ControlBoxActive :
                            ColorTable.ControlBoxDeactive;
            }

            RoundStyle roundStyle = minimizeBox || maximizeBox ?
                                    RoundStyle.BottomRight : RoundStyle.Bottom;

            using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
            {
                RenderHelper.RenderBackgroundInternal(
                    g,
                    rect,
                    baseColor,
                    baseColor,
                    ColorTable.ControlBoxInnerBorder,
                    roundStyle,
                    6,
                    .38F,
                    true,
                    false,
                    LinearGradientMode.Vertical);

                using (Pen pen = new Pen(ColorTable.Border))
                {
                    g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                }

                using (GraphicsPath path = CreateCloseFlagPath(rect))
                {
                    g.FillPath(Brushes.White, path);
                    using (Pen pen = new Pen(baseColor))
                    {
                        g.DrawPath(pen, path);
                    }
                }
            }
        }
Пример #6
0
 public SkinFormControlBoxRenderEventArgs(Forms.FormBase form, Graphics graphics, Rectangle clipRect, bool active, ControlBoxStyle controlBoxStyle, ControlBoxState controlBoxState, CmSysButton cmSysbutton = null)
     : base(graphics, clipRect)
 {
     this._form            = form;
     this._active          = active;
     this._controlBoxState = controlBoxState;
     this._controlBoxStyle = controlBoxStyle;
     this._CmSysbutton     = cmSysbutton;
 }
        //画窗体按钮
        protected override void OnRenderSkinFormControlBox(
            SkinFormControlBoxRenderEventArgs e)
        {
            CCSkinMain      form        = e.Form;
            Graphics        g           = e.Graphics;
            Rectangle       rect        = e.ClipRectangle;
            ControlBoxState state       = e.ControlBoxtate;
            CmSysButton     cmSysButton = e.CmSysButton;
            bool            active      = e.Active;

            bool minimizeBox = form.ControlBox && form.MinimizeBox;
            bool maximizeBox = form.ControlBox && form.MaximizeBox;

            switch (e.ControlBoxStyle)
            {
            case ControlBoxStyle.Close:
                RenderSkinFormCloseBoxInternal(
                    g,
                    rect,
                    state,
                    active,
                    minimizeBox,
                    maximizeBox,
                    form);
                break;

            case ControlBoxStyle.Maximize:
                RenderSkinFormMaximizeBoxInternal(
                    g,
                    rect,
                    state,
                    active,
                    minimizeBox,
                    form.WindowState == FormWindowState.Maximized,
                    form);
                break;

            case ControlBoxStyle.Minimize:
                RenderSkinFormMinimizeBoxInternal(
                    g,
                    rect,
                    state,
                    active,
                    form);
                break;

            case ControlBoxStyle.CmSysBottom:
                RenderSkinFormCmSysBottomInternal(
                    g,
                    rect,
                    state,
                    active,
                    form,
                    cmSysButton);
                break;
            }
        }
Пример #8
0
        /// <summary>
        /// 渲染最大化按钮
        /// </summary>
        /// <param name="g"></param>
        /// <param name="rect"></param>
        /// <param name="state"></param>
        /// <param name="active"></param>
        /// <param name="minimizeBox"></param>
        /// <param name="maximize"></param>
        /// <param name="form"></param>
        private void RenderSkinFormMaximizeBoxInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active,
                                                       bool minimizeBox, bool maximize, CForm form)
        {
            // Bitmap image = null;
            Bitmap image            = maximize ? (Bitmap)form.btnRestoreImage : (Bitmap)form.btnMaxImage;
            int    i                = 0;
            var    controlBoxActive = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                i = 2;
                // image = maximize ? ((Bitmap)form.RestoreDownBack) : ((Bitmap)form.MaxDownBack);
                controlBoxActive = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                i = 1;
                // image = maximize ? ((Bitmap)form.RestoreMouseBack) : ((Bitmap)form.MaxMouseBack);
                controlBoxActive = ColorTable.ControlBoxHover;
            }
            else
            {
                i = 0;
                // image = maximize ? ((Bitmap)form.RestoreNormlBack) : ((Bitmap)form.MaxNormlBack);
                controlBoxActive = active ? ColorTable.ControlBoxActive : ColorTable.ControlBoxDeactive;
            }
            if (image != null)
            {
                Rectangle srcRect = new Rectangle(image.Width / 3 * i, 0, image.Width / 3, image.Height);
                g.DrawImage(image, rect, srcRect, GraphicsUnit.Pixel);
            }
            else
            {
                var style = minimizeBox ? RoundStyle.None : RoundStyle.BottomLeft;
                using (new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive,
                                                          ColorTable.ControlBoxInnerBorder, style, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                    using (var pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                    using (var path = CreateMaximizeFlafPath(rect, maximize))
                    {
                        g.FillPath(Brushes.White, path);
                        using (var pen2 = new Pen(controlBoxActive))
                        {
                            g.DrawPath(pen2, path);
                        }
                    }
                }
            }
        }
        //画自定义系统按钮集合
        private void RenderSkinFormCmSysBottomInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, CCSkinMain form, CmSysButton cmSysButton)
        {
            Bitmap btm       = null;
            Color  baseColor = ColorTable.ControlBoxActive;

            if (cmSysButton.BoxState == ControlBoxState.Pressed)
            {
                btm       = (Bitmap)cmSysButton.SysButtonDown;
                baseColor = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                btm       = (Bitmap)cmSysButton.SysButtonMouse;
                baseColor = ColorTable.ControlBoxHover;
            }
            else
            {
                btm       = (Bitmap)cmSysButton.SysButtonNorml;
                baseColor = active ?
                            ColorTable.ControlBoxActive :
                            ColorTable.ControlBoxDeactive;
            }

            //绘制图片样式
            if (btm != null)
            {
                g.DrawImage(btm, rect);
            }
            else //绘制默认样式
            {
                RoundStyle roundStyle = RoundStyle.BottomLeft;
                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                }
            }
        }
 public SkinFormControlBoxRenderEventArgs(
     SkinForm form,
     Graphics graphics,
     Rectangle clipRect,
     bool active,
     ControlBoxStyle controlBoxStyle,
     ControlBoxState controlBoxState)
     : base(graphics, clipRect)
 {
     _form = form;
     _active = active;
     _controlBoxState = controlBoxState;
     _controlBoxStyle = controlBoxStyle;
 }
Пример #11
0
        /// <summary>
        /// 渲染自定义按钮
        /// </summary>
        /// <param name="g"></param>
        /// <param name="rect"></param>
        /// <param name="state"></param>
        /// <param name="active"></param>
        /// <param name="form"></param>
        private void RenderSkinFormSysBottomInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active,
                                                     CForm form)
        {
            Bitmap image = (Bitmap)form.btnCustomImage;

            if (image == null)
            {
                return;
            }
            int i = 0;
            var controlBoxActive = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                //   image = (Bitmap)form.SysBottomDown;
                i = 2;
                controlBoxActive = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                i = 1;
                // image = (Bitmap)form.SysBottomMouse;
                controlBoxActive = ColorTable.ControlBoxHover;
            }
            else
            {
                i = 0;
                // image = (Bitmap)form.SysBottomNorml;
                controlBoxActive = active ? ColorTable.ControlBoxActive : ColorTable.ControlBoxDeactive;
            }
            if (image != null)
            {
                Rectangle srcRect = new Rectangle(image.Width / 3 * i, 0, image.Width / 3, image.Height);
                g.DrawImage(image, rect, srcRect, GraphicsUnit.Pixel);
            }
            else
            {
                var bottomLeft = RoundStyle.BottomLeft;
                using (new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive,
                                                          ColorTable.ControlBoxInnerBorder, bottomLeft, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                    using (var pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                }
            }
        }
Пример #12
0
 public SkinFormControlBoxRenderEventArgs(
     CCSkinMain form,
     Graphics graphics,
     Rectangle clipRect,
     bool active,
     ControlBoxStyle controlBoxStyle,
     ControlBoxState controlBoxState,
     CmSysButton cmSysbutton = null)
     : base(graphics, clipRect)
 {
     _form            = form;
     _active          = active;
     _controlBoxState = controlBoxState;
     _controlBoxStyle = controlBoxStyle;
     _CmSysbutton     = cmSysbutton;
 }
Пример #13
0
        private void RenderSkinFormMinimizeBoxInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active,
                                                       CForm form)
        {
            Bitmap    image            = (Bitmap)form.btnMinImage;;
            var       controlBoxActive = ColorTable.ControlBoxActive;
            int       i = 0;
            Rectangle srcRect;

            if (state == ControlBoxState.Pressed)
            {
                i = 2; controlBoxActive = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                i = 1; controlBoxActive = ColorTable.ControlBoxHover;
            }
            else
            {
                i = 0; controlBoxActive = active ? ColorTable.ControlBoxActive : ColorTable.ControlBoxDeactive;
            }
            if (image != null)
            {
                srcRect = new Rectangle(i * image.Width / 3, 0, image.Width / 3, image.Height);
                g.DrawImage(image, rect, srcRect, GraphicsUnit.Pixel);
            }
            else
            {
                var bottomLeft = RoundStyle.BottomLeft;
                using (new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive,
                                                          ColorTable.ControlBoxInnerBorder, bottomLeft, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                    using (var pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                    using (var path = CreateMinimizeFlagPath(rect))
                    {
                        g.FillPath(Brushes.White, path);
                        using (var pen2 = new Pen(controlBoxActive))
                        {
                            g.DrawPath(pen2, path);
                        }
                    }
                }
            }
        }
Пример #14
0
        private void RenderSkinFormMinimizeBoxInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, FormBase form)
        {
            Bitmap image            = null;
            Color  controlBoxActive = this.ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                image            = (Bitmap)form.MiniDownBack;
                controlBoxActive = this.ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                image            = (Bitmap)form.MiniMouseBack;
                controlBoxActive = this.ColorTable.ControlBoxHover;
            }
            else
            {
                image            = (Bitmap)form.MiniNormlBack;
                controlBoxActive = active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive;
            }
            if (image != null)
            {
                g.DrawImage(image, rect);
            }
            else
            {
                RoundStyle bottomLeft = RoundStyle.BottomLeft;
                using (new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive, this.ColorTable.ControlBoxInnerBorder, bottomLeft, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                    using (Pen pen = new Pen(this.ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                    using (GraphicsPath path = this.CreateMinimizeFlagPath(rect))
                    {
                        g.FillPath(Brushes.White, path);
                        using (Pen pen2 = new Pen(controlBoxActive))
                        {
                            g.DrawPath(pen2, path);
                        }
                    }
                }
            }
        }
Пример #15
0
        private void RenderSkinFormSysBottomInternal(
            Graphics g,
            Rectangle rect,
            ControlBoxState state,
            bool active,
            SkinForm form)
        {
            Bitmap          image            = null;
            SkinPictureForm imageForm        = (SkinPictureForm)form;
            Color           controlBoxActive = this.ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                image            = (Bitmap)imageForm.SysBottomDown;
                controlBoxActive = this.ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                image            = (Bitmap)imageForm.SysBottomMouse;
                controlBoxActive = this.ColorTable.ControlBoxHover;
            }
            else
            {
                image            = (Bitmap)imageForm.SysBottomNorml;
                controlBoxActive = active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive;
            }
            if (image != null)
            {
                g.DrawImage(image, rect);
            }
            else
            {
                RoundStyle bottomLeft = RoundStyle.BottomLeft;
                using (new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive, this.ColorTable.ControlBoxInnerBorder, bottomLeft, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                    using (Pen pen = new Pen(this.ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                }
            }
        }
        private void RenderSkinFormCloseBoxInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, bool minimizeBox, bool maximizeBox)
        {
            Color color = this.ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                color = this.ColorTable.ControlCloseBoxPressed;
            }
            else
            {
                if (state == ControlBoxState.Hover)
                {
                    color = this.ColorTable.ControlCloseBoxHover;
                }
                else
                {
                    color = (active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive);
                }
            }
            RoundStyle style = (minimizeBox || maximizeBox) ? RoundStyle.BottomRight : RoundStyle.Bottom;

            using (new AntiAliasGraphics(g))
            {
                RenderHelper.RenderBackgroundInternal(g, rect, color, color, this.ColorTable.ControlBoxInnerBorder, style, 6, 0.38f, true, false, LinearGradientMode.Vertical);
                using (Pen pen = new Pen(this.ColorTable.Border))
                {
                    g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                }
                using (GraphicsPath graphicsPath = this.CreateCloseFlagPath(rect))
                {
                    g.FillPath(Brushes.White, graphicsPath);
                    using (Pen pen = new Pen(color))
                    {
                        g.DrawPath(pen, graphicsPath);
                    }
                }
            }
        }
        //画最小化按钮
        private void RenderSkinFormMinimizeBoxInternal(
            Graphics g,
            Rectangle rect,
            ControlBoxState state,
            bool active,
            CCSkinMain form)
        {
            Bitmap btm = null;
            Color baseColor = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                btm = (Bitmap)form.MiniDownBack;
                baseColor = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                btm = (Bitmap)form.MiniMouseBack;
                baseColor = ColorTable.ControlBoxHover;
            }
            else
            {
                btm = (Bitmap)form.MiniNormlBack;
                baseColor = active ?
                    ColorTable.ControlBoxActive :
                    ColorTable.ControlBoxDeactive;
            }
            //绘制图片样式
            if (btm != null)
            {
                g.DrawImage(btm, rect);
            }
            else //绘制默认样式
            {
                RoundStyle roundStyle = RoundStyle.BottomLeft;
                //g.DrawImage(btm,rect);
                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }

                    using (GraphicsPath path = CreateMinimizeFlagPath(rect))
                    {
                        g.FillPath(Brushes.White, path);
                        using (Pen pen = new Pen(baseColor))
                        {
                            g.DrawPath(pen, path);
                        }
                    }
                }
            }
        }
        //画最大化按钮
        private void RenderSkinFormMaximizeBoxInternal(
            Graphics g,
            Rectangle rect,
            ControlBoxState state,
            bool active,
            bool minimizeBox,
            bool maximize,
            CCSkinMain form)
        {
            Bitmap btm       = null;
            Color  baseColor = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                btm       = maximize ? (Bitmap)form.RestoreDownBack : (Bitmap)form.MaxDownBack;
                baseColor = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                btm       = maximize ? (Bitmap)form.RestoreMouseBack : (Bitmap)form.MaxMouseBack;
                baseColor = ColorTable.ControlBoxHover;
            }
            else
            {
                btm       = maximize ? (Bitmap)form.RestoreNormlBack : (Bitmap)form.MaxNormlBack;
                baseColor = active ?
                            ColorTable.ControlBoxActive :
                            ColorTable.ControlBoxDeactive;
            }

            //绘制图片样式
            if (btm != null)
            {
                g.DrawImage(btm, rect);
            }
            else //绘制默认样式
            {
                RoundStyle roundStyle = minimizeBox ?
                                        RoundStyle.None : RoundStyle.BottomLeft;

                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }

                    using (GraphicsPath path = CreateMaximizeFlafPath(rect, maximize))
                    {
                        g.FillPath(Brushes.White, path);
                        using (Pen pen = new Pen(baseColor))
                        {
                            g.DrawPath(pen, path);
                        }
                    }
                }
            }
        }
 private void RenderSkinFormMaximizeBoxInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, bool minimizeBox, bool maximize, CCSkinMain form)
 {
     Bitmap btm = null;
     Color baseColor = this.ColorTable.ControlBoxActive;
     if (state == ControlBoxState.Pressed)
     {
         btm = maximize ? ((Bitmap) form.RestoreDownBack) : ((Bitmap) form.MaxDownBack);
         baseColor = this.ColorTable.ControlBoxPressed;
     }
     else if (state == ControlBoxState.Hover)
     {
         btm = maximize ? ((Bitmap) form.RestoreMouseBack) : ((Bitmap) form.MaxMouseBack);
         baseColor = this.ColorTable.ControlBoxHover;
     }
     else
     {
         btm = maximize ? ((Bitmap) form.RestoreNormlBack) : ((Bitmap) form.MaxNormlBack);
         baseColor = active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive;
     }
     if (btm != null)
     {
         g.DrawImage(btm, rect);
     }
     else
     {
         RoundStyle roundStyle = minimizeBox ? RoundStyle.None : RoundStyle.BottomLeft;
         using (new AntiAliasGraphics(g))
         {
             RenderHelper.RenderBackgroundInternal(g, rect, baseColor, baseColor, this.ColorTable.ControlBoxInnerBorder, roundStyle, 6, 0.38f, true, false, LinearGradientMode.Vertical);
             using (Pen pen = new Pen(this.ColorTable.Border))
             {
                 g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
             }
             using (GraphicsPath path = this.CreateMaximizeFlafPath(rect, maximize))
             {
                 g.FillPath(Brushes.White, path);
                 using (Pen pen = new Pen(baseColor))
                 {
                     g.DrawPath(pen, path);
                 }
             }
         }
     }
 }
 private void RenderSkinFormSysBottomInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, CCSkinMain form)
 {
     Bitmap btm = null;
     Color baseColor = this.ColorTable.ControlBoxActive;
     if (state == ControlBoxState.Pressed)
     {
         btm = (Bitmap) form.SysBottomDown;
         baseColor = this.ColorTable.ControlBoxPressed;
     }
     else if (state == ControlBoxState.Hover)
     {
         btm = (Bitmap) form.SysBottomMouse;
         baseColor = this.ColorTable.ControlBoxHover;
     }
     else
     {
         btm = (Bitmap) form.SysBottomNorml;
         baseColor = active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive;
     }
     if (btm != null)
     {
         g.DrawImage(btm, rect);
     }
     else
     {
         RoundStyle roundStyle = RoundStyle.BottomLeft;
         using (new AntiAliasGraphics(g))
         {
             RenderHelper.RenderBackgroundInternal(g, rect, baseColor, baseColor, this.ColorTable.ControlBoxInnerBorder, roundStyle, 6, 0.38f, true, false, LinearGradientMode.Vertical);
             using (Pen pen = new Pen(this.ColorTable.Border))
             {
                 g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
             }
         }
     }
 }
Пример #21
0
        private void RenderSkinFormCloseBoxInternal(
            Graphics g,
            Rectangle rect,
            ControlBoxState state,
            bool active,
            bool minimizeBox,
            bool maximizeBox,
            SkinForm form)
        {
            Bitmap          image     = null;
            Color           baseColor = ColorTable.ControlBoxActive;
            SkinPictureForm imageForm = (SkinPictureForm)form;

            if (state == ControlBoxState.Pressed)
            {
                image     = (Bitmap)imageForm.CloseDownBack;
                baseColor = ColorTable.ControlCloseBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                image     = (Bitmap)imageForm.CloseMouseBack;
                baseColor = ColorTable.ControlCloseBoxHover;
            }
            else
            {
                image     = (Bitmap)imageForm.CloseNormlBack;
                baseColor = active ? ColorTable.ControlBoxActive : ColorTable.ControlBoxDeactive;
            }

            if (image != null)
            {
                g.DrawImage(image, rect);
            }
            else
            {
                RoundStyle roundStyle = minimizeBox || maximizeBox ?
                                        RoundStyle.BottomRight : RoundStyle.Bottom;

                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }

                    using (GraphicsPath path = DrawUtil.CreateCloseFlagPath(rect))
                    {
                        g.FillPath(Brushes.White, path);
                        using (Pen pen = new Pen(baseColor))
                        {
                            g.DrawPath(pen, path);
                        }
                    }
                }
            }
        }
 private void RenderSkinFormSysBottomInternal(
     Graphics g,
     Rectangle rect,
     ControlBoxState state,
     bool active,
     SkinForm form)
 {
     Bitmap image = null;
     SkinPictureForm imageForm = (SkinPictureForm)form;
     Color controlBoxActive = this.ColorTable.ControlBoxActive;
     if (state == ControlBoxState.Pressed)
     {
         image = (Bitmap)imageForm.SysBottomDown;
         controlBoxActive = this.ColorTable.ControlBoxPressed;
     }
     else if (state == ControlBoxState.Hover)
     {
         image = (Bitmap)imageForm.SysBottomMouse;
         controlBoxActive = this.ColorTable.ControlBoxHover;
     }
     else
     {
         image = (Bitmap)imageForm.SysBottomNorml;
         controlBoxActive = active ? this.ColorTable.ControlBoxActive : this.ColorTable.ControlBoxDeactive;
     }
     if (image != null)
     {
         g.DrawImage(image, rect);
     }
     else
     {
         RoundStyle bottomLeft = RoundStyle.BottomLeft;
         using (new AntiAliasGraphics(g))
         {
             RenderHelper.RenderBackgroundInternal(g, rect, controlBoxActive, controlBoxActive, this.ColorTable.ControlBoxInnerBorder, bottomLeft, 6, 0.38f, true, false, LinearGradientMode.Vertical);
             using (Pen pen = new Pen(this.ColorTable.Border))
             {
                 g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
             }
         }
     }
 }
        private void RenderSkinFormCloseBoxInternal(
           Graphics g,
           Rectangle rect,
           ControlBoxState state,
           bool active,
           bool minimizeBox,
           bool maximizeBox,
           SkinForm form)
        {
            Bitmap image = null;
            Color baseColor = ColorTable.ControlBoxActive;
            SkinPictureForm imageForm = (SkinPictureForm) form;
            
            if (state == ControlBoxState.Pressed)
            {
                image = (Bitmap)imageForm.CloseDownBack;
                baseColor = ColorTable.ControlCloseBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                image = (Bitmap)imageForm.CloseMouseBack;
                baseColor = ColorTable.ControlCloseBoxHover;
            }
            else
            {
                image = (Bitmap)imageForm.CloseNormlBack;
                baseColor = active ? ColorTable.ControlBoxActive : ColorTable.ControlBoxDeactive;
            }

            if (image != null)
            {
                g.DrawImage(image , rect );
            }
            else
            {
                RoundStyle roundStyle = minimizeBox || maximizeBox ?
                    RoundStyle.BottomRight : RoundStyle.Bottom;

                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }

                    using (GraphicsPath path = DrawUtil.CreateCloseFlagPath(rect))
                    {
                        g.FillPath(Brushes.White, path);
                        using (Pen pen = new Pen(baseColor))
                        {
                            g.DrawPath(pen, path);
                        }
                    }
                }
            }
        }
        //画自定义系统按钮集合
        private void RenderSkinFormCmSysBottomInternal(Graphics g, Rectangle rect, ControlBoxState state, bool active, CCSkinMain form, CmSysButton cmSysButton)
        {
            Bitmap btm = null;
            Color baseColor = ColorTable.ControlBoxActive;

            if (cmSysButton.BoxState == ControlBoxState.Pressed)
            {
                btm = (Bitmap)cmSysButton.SysButtonDown;
                baseColor = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                btm = (Bitmap)cmSysButton.SysButtonMouse;
                baseColor = ColorTable.ControlBoxHover;
            }
            else
            {
                btm = (Bitmap)cmSysButton.SysButtonNorml;
                baseColor = active ?
                    ColorTable.ControlBoxActive :
                    ColorTable.ControlBoxDeactive;
            }

            //绘制图片样式
            if (btm != null)
            {
                g.DrawImage(btm, rect);
            }
            else //绘制默认样式
            {
                RoundStyle roundStyle = RoundStyle.BottomLeft;
                using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
                {
                    RenderHelper.RenderBackgroundInternal(
                        g,
                        rect,
                        baseColor,
                        baseColor,
                        ColorTable.ControlBoxInnerBorder,
                        roundStyle,
                        6,
                        .38F,
                        true,
                        false,
                        LinearGradientMode.Vertical);

                    using (Pen pen = new Pen(ColorTable.Border))
                    {
                        g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                    }
                }
            }
        }
Пример #25
0
        private void RenderSkinFormMinimizeBoxInternal(
           Graphics g,
           Rectangle rect,
           ControlBoxState state,
           bool active)
        {
            Color baseColor = ColorTable.ControlBoxActive;

            if (state == ControlBoxState.Pressed)
            {
                baseColor = ColorTable.ControlBoxPressed;
            }
            else if (state == ControlBoxState.Hover)
            {
                baseColor = ColorTable.ControlBoxHover;
            }
            else
            {
                baseColor = active ?
                    ColorTable.ControlBoxActive :
                    ColorTable.ControlBoxDeactive;
            }

            RoundStyle roundStyle = RoundStyle.BottomLeft;

            using (AntiAliasGraphics antiGraphics = new AntiAliasGraphics(g))
            {
                RenderHelper.RenderBackgroundInternal(
                    g,
                    rect,
                    baseColor,
                    baseColor,
                    ColorTable.ControlBoxInnerBorder,
                    roundStyle,
                    6,
                    .38F,
                    true,
                    false,
                    LinearGradientMode.Vertical);

                using (Pen pen = new Pen(ColorTable.Border))
                {
                    g.DrawLine(pen, rect.X, rect.Y, rect.Right, rect.Y);
                }

                using (GraphicsPath path = CreateMinimizeFlagPath(rect))
                {
                    g.FillPath(Brushes.White, path);
                    using (Pen pen = new Pen(baseColor))
                    {
                        g.DrawPath(pen, path);
                    }
                }
            }
        }