/// <summary> /// Draws strip line in 3d. /// </summary> /// <param name="graph">Chart graphics.</param> /// <param name="rect">Strip rectangle.</param> /// <param name="horizontal">Indicates that strip is horizontal</param> private void Draw3DStrip(ChartGraphics graph, RectangleF rect, bool horizontal) { ChartArea area = this.Axis.ChartArea; GraphicsPath path = null; DrawingOperationTypes operationType = DrawingOperationTypes.DrawElement; if (this.Axis.Common.ProcessModeRegions) { operationType |= DrawingOperationTypes.CalcElementPath; } // Draw strip on the back/front wall path = graph.Fill3DRectangle( rect, area.IsMainSceneWallOnFront() ? area.areaSceneDepth : 0f, 0, area.matrix3D, area.Area3DStyle.LightStyle, this.BackColor, this.BorderColor, this.BorderWidth, this.BorderDashStyle, operationType); if (this.Axis.Common.ProcessModeRegions) { this.Axis.Common.HotRegionsList.AddHotRegion(graph, path, false, this.ToolTip, null, null, null, this, ChartElementType.StripLines); } if (horizontal) { // Draw strip on the side wall (left or right) if (!area.IsSideSceneWallOnLeft()) { rect.X = rect.Right; } rect.Width = 0f; path = graph.Fill3DRectangle( rect, 0f, area.areaSceneDepth, area.matrix3D, area.Area3DStyle.LightStyle, this.BackColor, this.BorderColor, this.BorderWidth, this.BorderDashStyle, operationType); } else if (area.IsBottomSceneWallVisible()) { // Draw strip on the bottom wall (if visible) rect.Y = rect.Bottom; rect.Height = 0f; path = graph.Fill3DRectangle( rect, 0f, area.areaSceneDepth, area.matrix3D, area.Area3DStyle.LightStyle, this.BackColor, this.BorderColor, this.BorderWidth, this.BorderDashStyle, operationType); } if (this.Axis.Common.ProcessModeRegions) { this.Axis.Common.HotRegionsList.AddHotRegion(graph, path, false, this.ToolTip, null, null, null, this, ChartElementType.StripLines); } if (path != null) { path.Dispose(); } }