''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.Drawing
Imports GrapeCity.Documents.Word
'' This example shows how to add reflection effect to text and shapes in a DOCX.
Public Class ReflectionEffect
Function CreateDocx() As GcWordDocument
Dim doc = New GcWordDocument()
'' Custom text reflection:
Dim style0 = doc.Styles.Add("style0", StyleType.Paragraph)
style0.Font.Size = 48
'' apply top half touching reflection effect to the text
Dim reflection As 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):
Dim 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:
Dim p As Paragraph = doc.Body.Paragraphs.Add()
Dim run As Run = p.GetRange().Runs.Add()
Dim shape As 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 = 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:
Dim 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
End Function
End Class