Beispiel #1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            //   base.OnPaint(e);
            var g = e.Graphics;

            Share.GraphicSetup(g);
            var sb = new SolidBrush(Share.BackColor);
            var p  = new Pen(Share.BorderColor, 1);

            g.FillPath(sb, rectPath);
            GraphicsPath gPath = null;

            for (var i = 0; i <= 8; i++)
            {
                sb.Color = selectColor[i];
                p.Color  = selectColor[i];
                // g.FillRectangle(sb, selectRect[i]);
                // g.DrawRectangle(p, selectRect[i]);
                gPath = DrawHelper.CreateRoundPath2(selectRect[i], Share.DefaultRadius);
                g.FillPath(sb, gPath);
                g.DrawPath(p, gPath);
            }
            g.DrawImage(ColorImage, colorImageRect); //取色图片

            p.Color = Share.BackColor;
            p.Width = 2;
            if (selectColorIndex != -1)
            {
                var rect = selectRect[selectColorIndex];
                rect.Inflate(-1, -1);
                gPath = DrawHelper.CreateRoundPath2(rect, Share.DefaultRadius);
                g.DrawPath(p, gPath);
            }
            gPath.Dispose();

            p.Color  = Share.BorderColor;
            sb.Color = Share.BackColor;
            g.DrawPath(p, rectPath); //控件边框

            p.Width = 2;
            p.Color = Color.Black;

            g.DrawEllipse(p, r); //圈圈
            r.Inflate(1, 1);
            p.Color = Color.White;
            g.DrawEllipse(p, r); //圈圈
            r.Inflate(-1, -1);

            sb.Dispose();
            p.Dispose();
        }
Beispiel #2
0
        //渲染背景 包括menustrip背景 toolstripDropDown背景
        protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
        {
            var toolStrip = e.ToolStrip;
            var g         = e.Graphics;

            //g.SmoothingMode = SmoothingMode.HighQuality;//抗锯齿
            Share.GraphicSetup(g);
            var bounds = e.AffectedBounds;

            //DrawHelper.RenderFormBorder(MenuBgImg, 20, g, e.);
            if (toolStrip is MenuStrip)
            {
                // g.FillRectangle(Brushes.Orange, bounds);
                //DrawHelper.RenderFormBorder(MenuBgImg, 20, g, bounds);
            }
            else if (toolStrip is ToolStripDropDown)
            {
                //  g.FillRectangle(Brushes.Orange, bounds);

                //背景圆角
                DrawHelper.SetWindowRegion(toolStrip, 1);
                using (var sb = new SolidBrush(Share.BackColor))
                {
                    g.FillRectangle(sb, bounds);
                    //画边线
                    sb.Color = Share.BorderColor;

                    var pen = new Pen(sb);
                    var gp  = DrawHelper.CreateRoundPath2(bounds, 2);
                    e.Graphics.DrawPath(pen, gp);
                    pen.Dispose();
                    gp.Dispose();
                }


                //int Rgn = NativeMethods.CreateRoundRectRgn(0, 0, bounds.Width + 1, bounds.Height + 1, 3, 3);
                //NativeMethods.SetWindowRgn(e.ToolStrip.Handle, Rgn, true);
                //toolStrip.BackColor = Color.White;
                //DrawHelper.RenderFormBorder(MenuBgImg, 27, g, bounds);
            }
            else
            {
                //  g.FillRectangle(Brushes.Orange, bounds);

                // g.FillRectangle(Brushes.Orange, bounds);
                //e.Graphics.Clear(Color.Transparent);
                base.OnRenderToolStripBackground(e);
            }
        }
Beispiel #3
0
        //SplitButton美化
        protected override void OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs e)
        {
            var toolStrip = e.ToolStrip;
            var item      = e.Item as ToolStripSplitButton;

            if (item != null)
            {
                var g      = e.Graphics;
                var bounds = new Rectangle(Point.Empty, item.Size);
                var gp     = DrawHelper.CreateRoundPath2(item.ContentRectangle, 5);
                var alpha  = (int)Alpha.Normal;
                var sb     = new SolidBrush(Color.FromArgb(alpha, 0, 0, 0));
                var pen    = new Pen(Color.FromArgb(alpha, 0, 0, 0));
                if (item.BackgroundImage != null)
                {
                }
                if (item.Selected)
                {
                    //DrawHelper.RendererBackground(g, bounds, ToolHoverBgImg, true);
                    if (item.ButtonPressed)
                    {
                        // if (item.ButtonPressed)
                        // DrawHelper.RendererBackground(g, item.ButtonBounds, SpitLeftDowmImg, true);
                        //else
                        // DrawHelper.RendererBackground(g, item.ButtonBounds, SpitLeftNorImg, true);
                    }
                    // DrawHelper.RendererBackground(g, item.ButtonBounds, SpitLeftNorImg, true);
                    //else if (item.DropDownButtonSelected)
                    // {
                    //if (item.DropDownButtonPressed)
                    //   DrawHelper.RendererBackground(g, item.DropDownButtonBounds, SpitRightDowmImg, true);
                    // else
                    //        DrawHelper.RendererBackground(g, item.DropDownButtonBounds, SpitRightNorImg, true);
                    //  }
                }

                DrawArrow(
                    new ToolStripArrowRenderEventArgs(
                        g,
                        item,
                        item.DropDownButtonBounds,
                        Color.Black,
                        ArrowDirection.Down));
            }
            //base.OnRenderSplitButtonBackground(e);
        }
Beispiel #4
0
        //子项背景
        protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
        {
            var toolStrip = e.ToolStrip;
            var item      = e.Item;

            if (!item.Enabled)
            {
                return;
            }

            var g = e.Graphics;

            Share.GraphicSetup(g);
            //渲染顶级项
            if (toolStrip is MenuStrip)
            {
                var gp = DrawHelper.CreateRoundPath2(item.ContentRectangle, Share.DefaultRadius);
                // int alpha = (int)Alpha.Normal;
                var sb  = new SolidBrush(Share.BackColor);
                var pen = new Pen(Share.BorderColor);
                if (item.Selected)
                {
                    // alpha = (int)Alpha.Normal;
                    sb.Color = pen.Color = Share.FocusBackColor;
                    g.FillPath(sb, gp);
                    g.DrawPath(pen, gp);
                }
                else if (item.Pressed)
                {
                    //   alpha = (int)Alpha.PressOrDown;
                    sb.Color = pen.Color = Share.FocusBackColor;
                    g.FillPath(sb, gp);
                    g.DrawPath(pen, gp);
                }
                else
                {
                    sb.Color  = Share.FocusBackColor;
                    pen.Color = Share.BorderColor;
                    base.OnRenderMenuItemBackground(e);
                }
                sb.Dispose();
                pen.Dispose();
                gp.Dispose();
            }
            //渲染下拉项  右键菜单
            else if (toolStrip is ToolStripDropDown)
            {
                if (item.Selected)
                {
                    item.ForeColor = Color.White;
                    var rect = new Rectangle(
                        item.ContentRectangle.X,
                        item.ContentRectangle.Y - 2,
                        item.ContentRectangle.Width + 1,
                        item.ContentRectangle.Height + 3);
                    //Color cl = Color.FromArgb(150, 150, 150);
                    var sb = new SolidBrush(Share.FocusBackColor);
                    g.FillRectangle(sb, rect);
                    sb.Dispose();
                }
                else
                {
                    item.ForeColor = Color.FromArgb(80, 80, 80);
                }
            }
            else
            {
                base.OnRenderMenuItemBackground(e);
            }
        }
Beispiel #5
0
        /// <summary>
        ///     主要针对toolbar的绘制
        /// </summary>
        /// <param name="e"></param>
        protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
        {
            var toolStrip = e.ToolStrip;
            var item      = e.Item as ToolStripButton;
            var g         = e.Graphics;

            Share.GraphicSetup(g);
            if (item != null)
            {
                var bounds   = new Rectangle(Point.Empty, item.Size);
                var rectPath = DrawHelper.CreateRoundPath2(bounds, Share.DefaultRadius);
                //int alpha = (int)Alpha.Normal;
                if (item.BackgroundImage != null)
                {
                    //这里绘制背景
                }
                var sb = new SolidBrush(Share.BackColor);
                var p  = new Pen(Share.BorderColor);
                //默认没有选中
                if (item.CheckState == CheckState.Unchecked)
                {
                    if (item.Selected)
                    {
                        item.ForeColor = Color.White;
                        if (item.Pressed)
                        {
                            sb.Color = p.Color = Share.BorderColor; //alpha = (int)Alpha.PressOrDown;
                        }
                        else
                        {
                            sb.Color = p.Color = Share.BorderColor; // alpha = (int)Alpha.MoveOrUp;
                        }
                    }
                    else
                    {
                        item.ForeColor = Color.Black;
                        sb.Color       = p.Color = Share.BackColor;
                        //alpha = (int)Alpha.None;
                        if (toolStrip is ToolStripOverflow)
                        {
                        }
                    }
                }
                else
                {
                    if (item.Selected)
                    {
                        sb.Color = p.Color = Share.BorderColor; //alpha = (int)Alpha.MoveOrUp;
                        // DrawHelper.RendererBackground(g, bounds, ToolHoverBgImg, true);
                    }
                    if (item.Pressed)
                    {
                        sb.Color = p.Color = Share.FocusBackColor; //alpha = (int)Alpha.PressOrDown;
                        // DrawHelper.RendererBackground(g, bounds, ToolDownBgImg, true);
                    }
                }
                //SolidBrush sb = new SolidBrush(Color.FromArgb(alpha, 0, 0, 0));
                //Pen pen = new Pen(Color.FromArgb(alpha, 0, 0, 0));
                g.FillPath(sb, rectPath);
                g.DrawPath(p, rectPath);
                sb.Dispose();
                p.Dispose();
                rectPath.Dispose();
            }
        }
Beispiel #6
0
        //渲染toolScript 下啦菜单项 一级 单项
        protected override void OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs e)
        {
            var toolStrip = e.ToolStrip;
            var item      = e.Item as ToolStripDropDownItem;

            // return;
            if (item != null)
            {
                var g = e.Graphics;
                g.SmoothingMode = SmoothingMode.HighQuality;
                Rectangle bounds;
                if (toolStrip.LayoutStyle == ToolStripLayoutStyle.Table)
                {
                    bounds = new Rectangle(Point.Empty, new Size(item.Size.Width - 10, item.Size.Height));
                }
                else
                {
                    bounds = new Rectangle(Point.Empty, item.Size);
                }

                var gp = DrawHelper.CreateRoundPath2(bounds, 5);
                //   int alpha = (int)Alpha.Normal;
                var sb  = new SolidBrush(Share.BackColor);
                var pen = new Pen(Share.BorderColor);

                if (item.Pressed && item.HasDropDownItems)
                {
                    //  alpha = (int)Alpha.PressOrDown;
                    sb.Color = Share.BorderColor;
                    g.FillPath(sb, gp);
                    g.DrawPath(pen, gp);
                    sb.Dispose();
                    pen.Dispose();
                    gp.Dispose();
                }
                else if (item.Selected)
                {
                    sb.Color = Share.BorderColor;
                    //   alpha = (int)Alpha.MoveOrUp;
                    g.FillPath(sb, gp);
                    g.DrawPath(pen, gp);
                    sb.Dispose();
                    pen.Dispose();
                    gp.Dispose();
                    item.ForeColor = Color.White;
                }
                else if (toolStrip is ToolStripOverflow)
                {
                }
                else
                {
                    g.FillPath(sb, gp);
                    // g.DrawPath(pen, gp);
                    item.ForeColor = Color.Black;
                    gp.Dispose();
                    sb.Dispose();
                    //  base.OnRenderDropDownButtonBackground(e);
                }
                g.DrawImage(Properties.Resources.icon_arrw, bounds.Width - 5, bounds.Height - 5);
            }
        }
Beispiel #7
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            if (!Visible)
            {
                return;
            }
            var g = e.Graphics;

            Share.GraphicSetup(g);

            using (var sb = new SolidBrush(thumbColor))
            {
                using (var pen = new Pen(thumbColor))
                {
                    g.FillPath(sb, rectPath);
                    g.DrawPath(pen, rectPath);
                    rectPath.Dispose();
                }
            }
            // if (DesignMode)
            //  {
            ScrollThumb.Width  = 10;
            ScrollThumb.X      = Width - 10;
            ScrollThumb.Height = (int)(((double)Height / virtualHeight) * (Height));
            ScrollThumb.Y      = (int)(((double)value / (virtualHeight - Height)) * (Height - ScrollThumb.Height));
            if (ScrollThumb.Height < 20)
            {
                ScrollThumb.Height = 20;
            }


            g.TranslateTransform(0, -Value);
            var rectItem = new Rectangle(1, 1, Width - 2, ItemHeight);

            if (virtualHeight > Height) //如果超出了.就是存在滚动条
            {
                rectItem.Width -= 10;
            }
            Color fontColor = Color.Black;
            var   font      = Share.DefaultFont;
            var   sf        = new StringFormat();

            sf.LineAlignment = StringAlignment.Center;
            sf.Alignment     = StringAlignment.Near;
            sf.Trimming      = StringTrimming.EllipsisCharacter; //超出指定矩形区域部分用"..."替代
            if (list != null && list.Count > 0)
            {
                for (var i = 0; i < list.Count; i++)
                {
                    fontColor = (BgColor == Color.Transparent) ? Color.Orange : Color.White;

                    if (list[i].Equals(mouseoverItem)) //鼠标划过
                    {
                        list[i].Alpha = (int)Alpha.Normal;
                    }
                    else if (list[i].Equals(SelectItem)) //选中
                    {
                        list[i].Alpha = (int)Alpha.MoveOrUp;
                    }
                    else
                    {
                        list[i].Alpha = (int)Alpha.None;
                        fontColor     = Color.Black;
                    }
                    //var s = g.MeasureString(list[i].Text, font);
                    //var textRect = new RectangleF(list[i].Bounds.Left, i * ItemHeight + (ItemHeight - s.Height) / 2.0f,
                    //    list[i].Bounds.Width, s.Height);
                    list[i].Bounds = new Rectangle(rectItem.Location, rectItem.Size);
                    using (var sb = new SolidBrush(GetColor(list[i].Alpha)))
                    {
                        //画背景
                        g.FillRectangle(sb, rectItem);
                    }
                    using (var sb = new SolidBrush(fontColor))
                    {
                        //画文字
                        // TextRenderer.DrawText(g, list[i].Text, font, list[i].Bounds, fontColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.Left | TextFormatFlags.EndEllipsis);
                        g.DrawString(list[i].Text, font, sb, list[i].Bounds, sf);
                    }

                    rectItem.Y = rectItem.Bottom + 1;
                }
            }
            g.ResetTransform();
            VirtualHeight = rectItem.Bottom - rectItem.Size.Height;

            //画滚动条
            if (virtualHeight > Height)
            {
                var sb  = new SolidBrush(thumbColor);
                var gp  = DrawHelper.CreateRoundPath2(ScrollThumb, 8);
                var pen = new Pen(thumbColor);
                g.FillPath(sb, gp);
                g.DrawPath(pen, gp);
                sb.Dispose();
                pen.Dispose();
                gp.Dispose();
            }
            //  }
        }
Beispiel #8
0
 private GraphicsPath GetPath(Rectangle rect, int raduio)
 {
     return(DrawHelper.CreateRoundPath2(rect, raduio));
 }