private void InitCustomColors(Dictionary <KnownColors, Color> rgbTable) { PanelEx panel = this._basePanel as PanelEx; if (panel != null) { rgbTable[KnownColors.BorderColor] = panel.CustomColors.BorderColor; rgbTable[KnownColors.InnerBorderColor] = panel.CustomColors.InnerBorderColor; rgbTable[KnownColors.PanelCaptionCloseIcon] = panel.CustomColors.CaptionCloseIcon; rgbTable[KnownColors.PanelCaptionExpandIcon] = panel.CustomColors.CaptionExpandIcon; rgbTable[KnownColors.PanelCaptionGradientBegin] = panel.CustomColors.CaptionGradientBegin; rgbTable[KnownColors.PanelCaptionGradientEnd] = panel.CustomColors.CaptionGradientEnd; rgbTable[KnownColors.PanelCaptionGradientMiddle] = panel.CustomColors.CaptionGradientMiddle; rgbTable[KnownColors.PanelCaptionSelectedGradientBegin] = panel.CustomColors.CaptionSelectedGradientBegin; rgbTable[KnownColors.PanelCaptionSelectedGradientEnd] = panel.CustomColors.CaptionSelectedGradientEnd; rgbTable[KnownColors.PanelContentGradientBegin] = panel.CustomColors.ContentGradientBegin; rgbTable[KnownColors.PanelContentGradientEnd] = panel.CustomColors.ContentGradientEnd; rgbTable[KnownColors.PanelCaptionText] = panel.CustomColors.CaptionText; rgbTable[KnownColors.PanelCollapsedCaptionText] = panel.CustomColors.CollapsedCaptionText; } ExpondPanel expondPanel = this._basePanel as ExpondPanel; if (expondPanel != null) { rgbTable[KnownColors.BorderColor] = expondPanel.CustomColors.BorderColor; rgbTable[KnownColors.InnerBorderColor] = expondPanel.CustomColors.InnerBorderColor; rgbTable[KnownColors.ExpondPanelBackColor] = expondPanel.CustomColors.BackColor; rgbTable[KnownColors.ExpondPanelCaptionCloseIcon] = expondPanel.CustomColors.CaptionCloseIcon; rgbTable[KnownColors.ExpondPanelCaptionExpandIcon] = expondPanel.CustomColors.CaptionExpandIcon; rgbTable[KnownColors.ExpondPanelCaptionText] = expondPanel.CustomColors.CaptionText; rgbTable[KnownColors.ExpondPanelCaptionGradientBegin] = expondPanel.CustomColors.CaptionGradientBegin; rgbTable[KnownColors.ExpondPanelCaptionGradientEnd] = expondPanel.CustomColors.CaptionGradientEnd; rgbTable[KnownColors.ExpondPanelCaptionGradientMiddle] = expondPanel.CustomColors.CaptionGradientMiddle; rgbTable[KnownColors.ExpondPanelFlatCaptionGradientBegin] = expondPanel.CustomColors.FlatCaptionGradientBegin; rgbTable[KnownColors.ExpondPanelFlatCaptionGradientEnd] = expondPanel.CustomColors.FlatCaptionGradientEnd; rgbTable[KnownColors.ExpondPanelPressedCaptionBegin] = expondPanel.CustomColors.CaptionPressedGradientBegin; rgbTable[KnownColors.ExpondPanelPressedCaptionEnd] = expondPanel.CustomColors.CaptionPressedGradientEnd; rgbTable[KnownColors.ExpondPanelPressedCaptionMiddle] = expondPanel.CustomColors.CaptionPressedGradientMiddle; rgbTable[KnownColors.ExpondPanelCheckedCaptionBegin] = expondPanel.CustomColors.CaptionCheckedGradientBegin; rgbTable[KnownColors.ExpondPanelCheckedCaptionEnd] = expondPanel.CustomColors.CaptionCheckedGradientEnd; rgbTable[KnownColors.ExpondPanelCheckedCaptionMiddle] = expondPanel.CustomColors.CaptionCheckedGradientMiddle; rgbTable[KnownColors.ExpondPanelSelectedCaptionBegin] = expondPanel.CustomColors.CaptionSelectedGradientBegin; rgbTable[KnownColors.ExpondPanelSelectedCaptionEnd] = expondPanel.CustomColors.CaptionSelectedGradientEnd; rgbTable[KnownColors.ExpondPanelSelectedCaptionMiddle] = expondPanel.CustomColors.CaptionSelectedGradientMiddle; rgbTable[KnownColors.ExpondPanelSelectedCaptionText] = expondPanel.CustomColors.CaptionSelectedText; } }
private static void DrawBorders(Graphics graphics, ExpondPanel expondPanel) { if (expondPanel.ShowBorder == true) { using (GraphicsPath graphicsPath = new GraphicsPath()) { using (Pen borderPen = new Pen(expondPanel.PanelColors.BorderColor, StaticResource.BorderThickness)) { Rectangle captionRectangle = expondPanel.CaptionRectangle; Rectangle borderRectangle = captionRectangle; if (expondPanel.Expand == true) { borderRectangle = expondPanel.ClientRectangle; graphics.DrawLine( borderPen, captionRectangle.Left, captionRectangle.Top + captionRectangle.Height - StaticResource.BorderThickness, captionRectangle.Left + captionRectangle.Width, captionRectangle.Top + captionRectangle.Height - StaticResource.BorderThickness); } ExpondPanelList expondPanelList = expondPanel.Parent as ExpondPanelList; if ((expondPanelList != null) && (expondPanelList.Dock == DockStyle.Fill)) { PanelEx panel = expondPanelList.Parent as PanelEx; ExpondPanel parentExpondPanel = expondPanelList.Parent as ExpondPanel; if (((panel != null) && (panel.Padding == new Padding(0))) || ((parentExpondPanel != null) && (parentExpondPanel.Padding == new Padding(0)))) { if (expondPanel.Top != 0) { graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top, borderRectangle.Left + captionRectangle.Width, borderRectangle.Top); } // Left vertical borderline graphics.DrawLine(borderPen, borderRectangle.Left, borderRectangle.Top, borderRectangle.Left, borderRectangle.Top + borderRectangle.Height); // Right vertical borderline graphics.DrawLine(borderPen, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top + borderRectangle.Height); } else { // Upper horizontal borderline only at the top expondPanel if (expondPanel.Top == 0) { graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top, borderRectangle.Left + borderRectangle.Width, borderRectangle.Top); } // Left vertical borderline graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top, borderRectangle.Left, borderRectangle.Top + borderRectangle.Height); //Lower horizontal borderline graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top + borderRectangle.Height - StaticResource.BorderThickness, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top + borderRectangle.Height - StaticResource.BorderThickness); // Right vertical borderline graphicsPath.AddLine( borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top + borderRectangle.Height); } } else { // Upper horizontal borderline only at the top expondPanel if (expondPanel.Top == 0) { graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top, borderRectangle.Left + borderRectangle.Width, borderRectangle.Top); } // Left vertical borderline graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top, borderRectangle.Left, borderRectangle.Top + borderRectangle.Height); //Lower horizontal borderline graphicsPath.AddLine( borderRectangle.Left, borderRectangle.Top + borderRectangle.Height - StaticResource.BorderThickness, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top + borderRectangle.Height - StaticResource.BorderThickness); // Right vertical borderline graphicsPath.AddLine( borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top, borderRectangle.Left + borderRectangle.Width - StaticResource.BorderThickness, borderRectangle.Top + borderRectangle.Height); } } using (Pen borderPen = new Pen(expondPanel.PanelColors.BorderColor, StaticResource.BorderThickness)) { graphics.DrawPath(borderPen, graphicsPath); } } } }