private void DrawTab_Document(Graphics g, IDockContent content, Rectangle rect) { g.SmoothingMode = SmoothingMode.AntiAlias; Rectangle rectText = rect; rectText.X += DocumentTextExtraWidth / 2; rectText.Width -= DocumentTextExtraWidth; if (DockPane.ActiveContent == content) { DrawUtil.DrawVSTab(g, rect, Color.WhiteSmoke, Color.Black, false);; // g.FillRectangle(MainForm.DarkColor //ActiveBackBrush // , rect); // g.DrawLine(OutlineOuterPen, rect.X, rect.Y, rect.X, rect.Y + rect.Height); // g.DrawLine(OutlineOuterPen, rect.X, rect.Y, rect.X + rect.Width - 1, rect.Y); // g.DrawLine(OutlineInnerPen, // rect.X + rect.Width - 1, rect.Y, // rect.X + rect.Width - 1, rect.Y + rect.Height - 1); if (DockPane.IsActiveDocumentPane) { using (Font boldFont = new Font(this.Font, FontStyle.Bold)) { g.DrawString(content.DockHandler.TabText, boldFont, ActiveTextBrush, rectText, DocumentTextStringFormat); } } else { g.DrawString(content.DockHandler.TabText, Font, InactiveTextBrush, rectText, DocumentTextStringFormat); } } else { // if (Tabs.IndexOf(DockPane.ActiveContent) != Tabs.IndexOf(content) + 1) // { // g.DrawLine(TabSeperatorPen, // rect.X + rect.Width - 1, rect.Y, // rect.X + rect.Width - 1, rect.Y + rect.Height - 1 - DocumentTabGapTop); // // DrawUtil.DrawVSTab(g,rect,Color.Silver,Color.Gray,false); // } DrawUtil.DrawVSTab(g, rect, Color.Gainsboro, Color.Silver, false); g.DrawLine(Pens.Black, rect.Right, rect.Bottom - 1, rect.Left - 10, rect.Bottom - 1); g.DrawString(content.DockHandler.TabText, Font, InactiveTextBrush, rectText, DocumentTextStringFormat); } }
/// <summary> /// Draws the tabs of a toolwindow/pane /// </summary> /// <param name="g"></param> /// <param name="content"></param> /// <param name="rect"></param> private void DrawTab_ToolWindow(Graphics g, IDockContent content, Rectangle rect) { g.SmoothingMode = SmoothingMode.AntiAlias; Rectangle rectIcon = new Rectangle( rect.X + ToolWindowImageGapLeft, rect.Y + rect.Height - 1 - ToolWindowImageGapBottom - ToolWindowImageHeight, ToolWindowImageWidth, ToolWindowImageHeight); Rectangle rectText = rectIcon; rectText.X += rectIcon.Width + ToolWindowImageGapRight; rectText.Width = rect.Width - rectIcon.Width - ToolWindowImageGapLeft - ToolWindowImageGapRight - ToolWindowTextGapRight; if (DockPane.ActiveContent == content) { DrawUtil.DrawTab(g, rect, Corners.RB, GradientType.Flat, ColorMixer.LightColor, ColorMixer.LightColor, Color.Black, false); // DrawUtil.DrawVSTab(g,rect,Color.WhiteSmoke,Color.DimGray,false); // g.FillRectangle(ActiveBackBrush, rect); // g.DrawLine(OutlineOuterPen, // rect.X, rect.Y, rect.X, rect.Y + rect.Height - 1); // g.DrawLine(OutlineInnerPen, // rect.X, rect.Y + rect.Height - 1, rect.X + rect.Width - 1, rect.Y + rect.Height - 1); // g.DrawLine(OutlineInnerPen, // rect.X + rect.Width - 1, rect.Y, rect.X + rect.Width - 1, rect.Y + rect.Height - 1); g.DrawString(content.DockHandler.TabText, Font, new SolidBrush(ColorMixer.DarkDarkColor), rectText, ToolWindowTextStringFormat); } else { if (Tabs.IndexOf(DockPane.ActiveContent) != Tabs.IndexOf(content) + 1) { g.DrawLine(TabSeperatorPen, rect.X + rect.Width - 1, rect.Y + ToolWindowTabSeperatorGapTop, rect.X + rect.Width - 1, rect.Y + rect.Height - 1 - ToolWindowTabSeperatorGapBottom); } g.DrawString(content.DockHandler.TabText, Font, InactiveTextBrush, rectText, ToolWindowTextStringFormat); } if (rect.Contains(rectIcon)) { g.DrawIcon(content.DockHandler.Icon, rectIcon); } }
private void DrawTab(Graphics g, AutoHideTabFromBase tab) { Rectangle rectTab = GetTabRectangle(tab); if (rectTab.IsEmpty) { return; } DockState dockState = tab.Content.DockHandler.DockState; IDockContent content = tab.Content; BeginDrawTab(); Pen penTabBorder = PenTabBorder; Brush brushTabText = new SolidBrush(ColorMixer.AutoHideTabTextColor); if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide) { DrawUtil.DrawVSTab(g, rectTab, Color.WhiteSmoke, Color.DimGray, false); } else { DrawUtil.DrawVSTab(g, rectTab, Color.WhiteSmoke, Color.DimGray, false); } // g.FillRectangle(new LinearGradientBrush(rectTab,ColorMixer.DarkColor,ColorMixer.LightColor,LinearGradientMode.Vertical) // , rectTab); // // g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Left, rectTab.Bottom); // g.DrawLine(penTabBorder, rectTab.Right, rectTab.Top, rectTab.Right, rectTab.Bottom); // if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide) // g.DrawLine(penTabBorder, rectTab.Left, rectTab.Bottom, rectTab.Right, rectTab.Bottom); // else // g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Right, rectTab.Top); // Set no rotate for drawing icon and text Matrix matrixRotate = g.Transform; g.Transform = MatrixIdentity; // Draw the icon Rectangle rectImage = rectTab; rectImage.X += ImageGapLeft; rectImage.Y += ImageGapTop; int imageHeight = rectTab.Height - ImageGapTop - ImageGapBottom; int imageWidth = ImageWidth; if (imageHeight > ImageHeight) { imageWidth = ImageWidth * (imageHeight / ImageHeight); } rectImage.Height = imageHeight; rectImage.Width = imageWidth; rectImage = GetTransformedRectangle(dockState, rectImage); g.DrawIcon(content.DockHandler.Icon, rectImage); // Draw the text if (content == content.DockHandler.Pane.ActiveContent) { Rectangle rectText = rectTab; rectText.X += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; rectText = GetTransformedRectangle(dockState, rectText); if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) { g.DrawString(content.DockHandler.TabText, Font, brushTabText, rectText, StringFormatTabVertical); } else { g.DrawString(content.DockHandler.TabText, Font, brushTabText, rectText, StringFormatTabHorizontal); } } // Set rotate back g.Transform = matrixRotate; EndDrawTab(); }