Ejemplo n.º 1
0
        public void DrawTabItemBackground(TabStripItemRenderEventArgs e)
        {
            OnRenderTabItemBackground(e);

            var handler = Events[EventRenderTabItemBackground] as ToolStripItemRenderEventHandler;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Ejemplo n.º 2
0
        protected override void OnRenderTabItemBackground(TabStripItemRenderEventArgs e)
        {
            var rect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1);

            e.Graphics.DrawRectangle(Pens.Green, rect);

            rect.Offset(e.Item.Padding.Left, e.Item.Padding.Top);
            rect.Width  -= e.Item.Padding.Horizontal;
            rect.Height -= e.Item.Padding.Vertical;

            e.Graphics.DrawRectangle(Pens.Red, rect);

            DrawDottedRectangle(e.Graphics, Color.Black, e.CloseButtonRectangle);

            var tab = e.Item as TabStripButton;

            if (tab != null)
            {
                using (var font = new Font("Segoe UI", 10, FontStyle.Bold))
                {
                    int tabIndex = 0;

                    foreach (var item in e.ToolStrip.Items)
                    {
                        if (item == tab)
                        {
                            goto Render;
                        }

                        if (item is TabStripButton)
                        {
                            ++tabIndex;
                        }
                    }

                    tabIndex = -1;

Render:
                    TextRenderer.DrawText(
                        e.Graphics,
                        tabIndex.ToString(CultureInfo.CurrentUICulture),
                        font,
                        rect,
                        Color.Red,
                        TextFormatFlags.Left
                        );
                }
            }
        }
Ejemplo n.º 3
0
        private static void RenderTabItemBackgroundUsingVisualStyles(TabStripItemRenderEventArgs e, bool isChecked)
        {
            e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;

            using (GraphicsPath outer = GetTabBorderPath(e.Item.Width, e.Item.Height, isChecked, false))
            {
                var colors = NormalColors;

                if (e.Item.Enabled && isChecked)
                {
                    colors = CheckedColors;
                }
                else if (e.Item.Selected)
                {
                    colors = SelectedColors;
                }

                FillGradient(e.Graphics, outer, colors, TabBackgroundRatio);

                using (Pen pen = new Pen(TabBorderColor, 1))
                {
                    e.Graphics.DrawPath(Pens.Gray, outer);
                }

                using (GraphicsPath inner = GetTabBorderPath(e.Item.Width, e.Item.Height, isChecked, true))
                {
                    e.Graphics.DrawPath(Pens.White, inner);
                }
            }

            if (!e.CloseButtonRectangle.IsEmpty)
            {
                var element = VisualStyleElement.ToolTip.Close.Normal;

                if (e.CloseButtonState == TabStripCloseButtonState.Selected)
                {
                    element = VisualStyleElement.ToolTip.Close.Hot;
                }
                if (e.CloseButtonState == TabStripCloseButtonState.Pressed)
                {
                    element = VisualStyleElement.ToolTip.Close.Pressed;
                }

                VisualStyleRenderer renderer = new VisualStyleRenderer(element);
                renderer.DrawBackground(e.Graphics, e.CloseButtonRectangle);
            }
        }
Ejemplo n.º 4
0
        protected override void OnRenderTabItemBackground(TabStripItemRenderEventArgs e)
        {
            var isChecked = false;
            var button    = e.Item as ToolStripButton;

            if (button != null && button.Checked)
            {
                isChecked = true;
            }

            if (VisualStylesAvailable)
            {
                RenderTabItemBackgroundUsingVisualStyles(e, isChecked);
            }
            else
            {
                var rect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1);
                if (isChecked)
                {
                    using (var brush = new LinearGradientBrush(rect,
                                                               SystemColors.ControlLightLight,
                                                               SystemColors.Control,
                                                               LinearGradientMode.Vertical))
                    {
                        e.Graphics.FillRectangle(brush, rect);
                    }
                }

                ControlPaint.DrawBorder3D(e.Graphics, rect, Border3DStyle.Raised,
                                          Border3DSide.Left | Border3DSide.Top | Border3DSide.Right);

                if (!e.CloseButtonRectangle.IsEmpty)
                {
                    var closeRect = e.CloseButtonRectangle;

                    if (e.CloseButtonState != TabStripCloseButtonState.Pressed)
                    {
                        closeRect.Offset(-2, -2);
                    }

                    using (var marlett = new Font("Marlett", 8))
                    {
                        TextRenderer.DrawText(e.Graphics, "r", marlett, closeRect, SystemColors.ControlText);
                    }
                }
            }
        }
Ejemplo n.º 5
0
 protected virtual void OnRenderTabItemBackground(TabStripItemRenderEventArgs e)
 {
 }
Ejemplo n.º 6
0
 protected virtual void OnPaintBackground(TabStripItemRenderEventArgs e)
 {
     Renderer.DrawTabItemBackground(e);
 }