private void SetPredefinedInnerShadow(ePresetExcelShadowType shadowType) { InnerShadow.Color.SetPresetColor(ePresetColor.Black); if (shadowType == ePresetExcelShadowType.InnerCenter) { InnerShadow.Color.Transforms.AddAlpha(0); InnerShadow.Direction = 0; InnerShadow.Distance = 0; InnerShadow.BlurRadius = 9; } else { InnerShadow.Color.Transforms.AddAlpha(50); InnerShadow.BlurRadius = 5; InnerShadow.Distance = 4; } switch (shadowType) { case ePresetExcelShadowType.InnerTopLeft: InnerShadow.Direction = 225; break; case ePresetExcelShadowType.InnerTop: InnerShadow.Direction = 270; break; case ePresetExcelShadowType.InnerTopRight: InnerShadow.Direction = 315; break; case ePresetExcelShadowType.InnerLeft: InnerShadow.Direction = 180; break; case ePresetExcelShadowType.InnerRight: InnerShadow.Direction = 0; break; case ePresetExcelShadowType.InnerBottomLeft: InnerShadow.Direction = 135; break; case ePresetExcelShadowType.InnerBottom: InnerShadow.Direction = 90; break; case ePresetExcelShadowType.InnerBottomRight: InnerShadow.Direction = 45; break; } }
/// <summary> /// Set a predefined shadow matching the preset types in Excel /// </summary> /// <param name="shadowType">The preset type</param> public void SetPresetShadow(ePresetExcelShadowType shadowType) { InnerShadow.Delete(); OuterShadow.Delete(); PresetShadow.Delete(); if (shadowType == ePresetExcelShadowType.None) { return; } if (shadowType <= ePresetExcelShadowType.InnerBottomRight) { SetPredefinedInnerShadow(shadowType); } else { SetPredefinedOuterShadow(shadowType); } }
private void SetPredefinedOuterShadow(ePresetExcelShadowType shadowType) { OuterShadow.Color.SetPresetColor(ePresetColor.Black); switch (shadowType) { case ePresetExcelShadowType.PerspectiveUpperLeft: OuterShadow.Color.Transforms.AddAlpha(20); OuterShadow.BlurRadius = 6; OuterShadow.Distance = 0; OuterShadow.Direction = 225; OuterShadow.Alignment = eRectangleAlignment.BottomRight; OuterShadow.HorizontalSkewAngle = 20; OuterShadow.VerticalScalingFactor = 23; break; case ePresetExcelShadowType.PerspectiveUpperRight: OuterShadow.Color.Transforms.AddAlpha(20); OuterShadow.BlurRadius = 6; OuterShadow.Distance = 0; OuterShadow.Direction = 315; OuterShadow.Alignment = eRectangleAlignment.BottomLeft; OuterShadow.HorizontalSkewAngle = -20; OuterShadow.VerticalScalingFactor = 23; break; case ePresetExcelShadowType.PerspectiveBelow: OuterShadow.Color.Transforms.AddAlpha(15); OuterShadow.BlurRadius = 12; OuterShadow.Distance = 25; OuterShadow.Direction = 90; OuterShadow.HorizontalScalingFactor = 90; OuterShadow.VerticalScalingFactor = -19; break; case ePresetExcelShadowType.PerspectiveLowerLeft: OuterShadow.Color.Transforms.AddAlpha(20); OuterShadow.BlurRadius = 6; OuterShadow.Distance = 1; OuterShadow.Direction = 135; OuterShadow.Alignment = eRectangleAlignment.BottomRight; OuterShadow.HorizontalSkewAngle = 13.34; OuterShadow.VerticalScalingFactor = -23; break; case ePresetExcelShadowType.PerspectiveLowerRight: OuterShadow.Color.Transforms.AddAlpha(20); OuterShadow.BlurRadius = 6; OuterShadow.Distance = 1; OuterShadow.Direction = 45; OuterShadow.Alignment = eRectangleAlignment.BottomLeft; OuterShadow.HorizontalSkewAngle = -13.34; OuterShadow.VerticalScalingFactor = -23; break; case ePresetExcelShadowType.OuterCenter: OuterShadow.Color.Transforms.AddAlpha(40); OuterShadow.VerticalScalingFactor = 102; OuterShadow.HorizontalScalingFactor = 102; OuterShadow.BlurRadius = 5; OuterShadow.Alignment = eRectangleAlignment.Center; break; default: OuterShadow.Color.Transforms.AddAlpha(40); OuterShadow.BlurRadius = 4; OuterShadow.Distance = 3; switch (shadowType) { case ePresetExcelShadowType.OuterTopLeft: OuterShadow.Direction = 225; OuterShadow.Alignment = eRectangleAlignment.BottomRight; break; case ePresetExcelShadowType.OuterTop: OuterShadow.Direction = 270; OuterShadow.Alignment = eRectangleAlignment.Bottom; break; case ePresetExcelShadowType.OuterTopRight: OuterShadow.Direction = 315; OuterShadow.Alignment = eRectangleAlignment.BottomLeft; break; case ePresetExcelShadowType.OuterLeft: OuterShadow.Direction = 180; OuterShadow.Alignment = eRectangleAlignment.Right; break; case ePresetExcelShadowType.OuterRight: OuterShadow.Direction = 0; OuterShadow.Alignment = eRectangleAlignment.Left; break; case ePresetExcelShadowType.OuterBottomLeft: OuterShadow.Direction = 135; OuterShadow.Alignment = eRectangleAlignment.TopRight; break; case ePresetExcelShadowType.OuterBottom: OuterShadow.Direction = 90; OuterShadow.Alignment = eRectangleAlignment.Top; break; case ePresetExcelShadowType.OuterBottomRight: OuterShadow.Direction = 45; OuterShadow.Alignment = eRectangleAlignment.TopLeft; break; } break; } OuterShadow.RotateWithShape = false; }
private static void AddPresetShadowShape(ExcelWorksheet ws, int row, int col, ePresetExcelShadowType preset) { var shape = AddShape(ws, row, col, preset.ToString()); shape.Effect.SetPresetShadow(preset); }