ReflectionEffect.cs
- //
- // This code is part of Document Solutions for Word demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using System.Collections.Generic;
- using System.Linq;
- using GrapeCity.Documents.Word;
-
- namespace DsWordWeb.Demos
- {
- // This example shows how to add reflection effect to text and shapes in a DOCX.
- public class ReflectionEffect
- {
- public GcWordDocument CreateDocx()
- {
- var doc = new GcWordDocument();
-
- // Custom text reflection:
- var style0 = doc.Styles.Add("style0", StyleType.Paragraph);
- style0.Font.Size = 48;
- // apply top half touching reflection effect to the text
- Reflection reflection = style0.Font.Effects.Reflection;
- reflection.Distance = 0f;
- reflection.Angle = 90f;
- reflection.Blur = 0.5f;
- reflection.Alignment = RectangleAlignment.BottomLeft;
- reflection.ScaleX = 100f;
- reflection.ScaleY = -100f;
- reflection.SkewX = 0f;
- reflection.SkewY = 0f;
- reflection.StartOpacity = 60f;
- reflection.EndOpacity = 0.9f;
- reflection.StartOpacityPosition = 0f;
- reflection.EndOpacityPosition = 58f;
- reflection.OpacityAngle = 90f;
- doc.Body.Paragraphs.Add("Custom text reflection.", style0);
-
- // Built-in text reflection (visually the same as the custom reflection above):
- var style1 = doc.Styles.Add("style1", StyleType.Paragraph);
- style1.Font.Size = 48;
- // apply top half touching reflection effect to the text
- style1.Font.Effects.ApplyBuiltInReflection(BuiltInReflectionId.HalfTouching);
- doc.Body.Paragraphs.Add("Built-in text reflection.", style1);
-
- // Shape reflection - direct effects:
- Paragraph p = doc.Body.Paragraphs.Add();
- Run run = p.GetRange().Runs.Add();
- Shape shape = run.GetRange().Shapes.Add(100, 100, GeometryType.Heptagon);
- shape.Fill.Type = FillType.Solid;
- shape.Fill.SolidFill.RGB = Color.PeachPuff;
- shape.Line.Width = 4;
- shape.Line.Fill.SolidFill.ThemeColor = ThemeColorId.Accent1;
- shape.Effects.ApplyBuiltInReflection(BuiltInReflectionId.TightTouching);
- p.GetRange().Runs.Add("Shape reflection - direct effects.", doc.Styles[BuiltInStyleId.Strong]);
-
- // Shape reflection - style effects:
- p = doc.Body.Paragraphs.Add();
- p.Style.ParagraphFormat.Spacing.SpaceBefore = 50;
- run = p.GetRange().Runs.Add();
- shape = shape = run.GetRange().Shapes.Add(100, 100, GeometryType.Heptagon);
- shape.Fill.Type = FillType.Solid;
- shape.Fill.SolidFill.RGB = Color.PeachPuff;
- shape.Line.Width = 4;
- shape.Line.Fill.SolidFill.ThemeColor = ThemeColorId.Accent1;
- // Apply tight touching reflection effect to the new effect record:
- var fmtEffect = doc.Theme.FormatScheme.Effects.Add();
- fmtEffect.ApplyBuiltInReflection(BuiltInReflectionId.TightTouching);
- // Apply new effect style to shape:
- shape.Style.Effects.ThemeEffects = fmtEffect;
- p.GetRange().Runs.Add("Shape reflection - style effects.", doc.Styles[BuiltInStyleId.Strong]);
-
- // Done:
- return doc;
- }
- }
- }
-