如何在 C# 中為文字添加反射效果 | IronWord

How to Add Reflection Effect to Text in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

using IronWord 的簡易 API,在 C# 中為文字套用鏡像反射效果。 只需一行程式碼,即可建立Professional的文字反射效果,模擬文字在表面上的反射,以增強視覺深度。

快速入門:在 C# 中對文字套用反射效果

只需一行 IronWord 程式碼,即可將預設的反射效果套用至任何文字。 立即開始使用——無需複雜的設定或範本程式碼。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronWord

    PM > Install-Package IronWord
  2. 請複製並執行此程式碼片段。

    using IronWord;
    using IronWord.Models;
    
    WordDocument doc = new WordDocument();
    TextStyle textStyle = new TextStyle();
    textStyle.TextEffect = new TextEffect() { ReflectionEffect = new Reflection() };
    Paragraph paragraph = new Paragraph();
    Run textRun = new Run(new TextContent("Reflection Text"));
    textRun.Style = textStyle;
    paragraph.AddChild(textRun);
    doc.AddParagraph(paragraph);
    doc.SaveAs("reflection.docx");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronWord

    arrow pointer

如何添加反射效果?

若要套用反射效果,請建立 TextStyle,並將其 TextEffect 屬性填入 ReflectionEffect。 接著建立一個 Paragraph,其後接一個包含 TextContentRun。 將 TextStyle 賦值給 Run(而非 TextContent),然後使用 AddChildRun 賦值給 Paragraph。 此文件遵循以下層級結構:DocumentParagraphRunTextContent

反射效果透過為重要文字元素增添深度與視覺吸引力,從而提升文件的呈現效果。 此效果特別適用於Professional文件中的標題、副標題,以及強調關鍵資訊。 此設計模擬文字置於光面上的效果,營造出優雅且現代的外觀,能吸引讀者的目光。

為什麼建立 TextStyle 很重要?

TextStyle 物件是 IronWord 中所有文字格式設定的核心配置點。 透過將樣式與內容分離,您可以在多個文字元素上重複使用相同的反射效果,確保文件整體的一致性。 此方法亦能透過修改單一樣式物件,輕鬆地全面更新反射效果。

:path=/static-assets/word/content-code-examples/how-to/text-effect-reflection-effect.cs
using IronWord;
using IronWord.Models;

// Create new Word document
WordDocument doc = new WordDocument();

// Create and configure text style
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
    ReflectionEffect = new Reflection(),
};

// Create paragraph
Paragraph paragraph = new Paragraph();

// Create run with text and style
Run textRun = new Run(new TextContent("Hello World"));
textRun.Style = textStyle;

// Add run to paragraph
paragraph.AddChild(textRun);

// Add paragraph to document
doc.AddParagraph(paragraph);

// Export new Word document
doc.SaveAs("reflectionEffect.docx");
Imports IronWord
Imports IronWord.Models

' Create new Word document
Dim doc As New WordDocument()

' Create and configure text style
Dim textStyle As New TextStyle()
textStyle.TextEffect = New TextEffect() With {
    .ReflectionEffect = New Reflection()
}

' Create paragraph
Dim paragraph As New Paragraph()

' Create run with text and style
Dim textRun As New Run(New TextContent("Hello World"))
textRun.Style = textStyle

' Add run to paragraph
paragraph.AddChild(textRun)

' Add paragraph to document
doc.AddParagraph(paragraph)

' Export new Word document
doc.SaveAs("reflectionEffect.docx")
$vbLabelText   $csharpLabel

預設的反射功能呈現為何?

預設的反射效果會在文字下方產生一幅微妙的鏡像,並自動淡入淡出透明度。 此預設設定適用於大多數商業文件和簡報,無需任何額外調整。 反射效果以標準間距呈現,並搭配適當的模糊與透明度設定,以配合各種字型大小與樣式。

Microsoft WORD 顯示

我可以為反射效果設定哪些屬性?

反射效果提供一系列可調整的屬性,以滿足多樣化的設計需求。 了解這些屬性,可讓您根據特定文件風格,打造獨特的視覺效果。 每個屬性皆可控制反射效果的不同面向,從位置、角度到透明度與顏色皆可調整。 請參閱以下清單以了解各屬性的詳細說明:

哪些屬性會影響反射的外觀?

  • SchemeColor:取得或設定反射效果的配色方案。 使用任意顏色進行色調反射,以呈現水波或金屬表面效果。

  • HorizontalSkewAngle:取得或設定水平傾斜角度(單位為度)。 創造透視效果,使倒影向遠方延伸。

  • HorizontalScalingFactor:取得或設定水平縮放係數。 低於 100 的數值將被壓縮; 值大於 100 時會拉伸。

  • DistanceFromText:取得或設定以點(1/72 英吋)為單位的距離。 較小的數值會產生緊密的反射; 較大的數值可模擬遠處的表面。

  • DirectionAngle:取得或設定方向角度(單位為度)。 判定視覺光源的方向。

  • FadeDirectionAngle:取得或設定淡入淡出方向(單位為度)。 控制垂直淡入淡出效果以呈現地板反射,或使用傾斜淡入淡出效果以呈現水波效果。

  • EndPosition:取得或設定結尾位置。 決定反射效果何時完全淡出。

  • StartPosition:取得或設定起始位置。 通常在原文正下方緊接開始。

  • EndingOpacity:取得或設定結束時的透明度。 較低的數值會產生微妙的反射效果,並逐漸淡化至透明。

  • VerticalScalingFactor:取得或設定垂直縮放係數。 負值會使文字翻轉; magnitude 控制高度。

  • StartingOpacity:取得或設定起始不透明度。 較高的數值會產生更強烈的初始反射。

  • Alignment:取得或設定對齊方式。 從多種選項中選擇,以設定反射相對於文字的位置。

  • BlurRadius:取得或設定以點(1/72 英吋)為單位的模糊半徑。 較高的數值會產生更柔和、更朦朧的反射效果。

  • VerticalSkewAngle:取得或設定垂直傾斜角度(單位為度)。 用於創建傾斜反射效果。

如何建立自訂反射效果?

自訂反射效果可讓您配合組織的品牌形象,或打造獨特的視覺風格。 以下範例展示了一種帶有金色色調的反射效果,透過特定的定位與不透明度設定,為證書、獎項或高級文件頁首營造出Professional的外觀。

:path=/static-assets/word/content-code-examples/how-to/text-effect-customized-reflection-effect.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

// Create new Word document
WordDocument doc = new WordDocument();

// Create and configure text style
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
    ReflectionEffect = new Reflection()
    {
        Alignment = RectangleAlignmentValues.BottomLeft,
        BlurRadius = 5,
        DirectionAngle = 90,
        DistanceFromText = 5,
        EndingOpacity = 100,
        EndPosition = 10,
        FadeDirectionAngle = 90,
        HorizontalScalingFactor = 100,
        HorizontalSkewAngle = 0,
        SchemeColor = IronWord.Models.Color.Gold,
        StartingOpacity = 0,
        StartPosition = 0,
        VerticalScalingFactor = -100,
        VerticalSkewAngle = 0,
    },
};

// Create paragraph
Paragraph paragraph = new Paragraph();

// Create run with text and style
Run textRun = new Run(new TextContent("Customized reflection"));
textRun.Style = textStyle;

// Add run to paragraph
paragraph.AddChild(textRun);

// Add paragraph to document
doc.AddParagraph(paragraph);

// Export new Word document
doc.SaveAs("customizedReflectionEffect.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

' Create new Word document
Dim doc As New WordDocument()

' Create and configure text style
Dim textStyle As New TextStyle()
textStyle.TextEffect = New TextEffect() With {
    .ReflectionEffect = New Reflection() With {
        .Alignment = RectangleAlignmentValues.BottomLeft,
        .BlurRadius = 5,
        .DirectionAngle = 90,
        .DistanceFromText = 5,
        .EndingOpacity = 100,
        .EndPosition = 10,
        .FadeDirectionAngle = 90,
        .HorizontalScalingFactor = 100,
        .HorizontalSkewAngle = 0,
        .SchemeColor = IronWord.Models.Color.Gold,
        .StartingOpacity = 0,
        .StartPosition = 0,
        .VerticalScalingFactor = -100,
        .VerticalSkewAngle = 0
    }
}

' Create paragraph
Dim paragraph As New Paragraph()

' Create run with text and style
Dim textRun As New Run(New TextContent("Customized reflection"))
textRun.Style = textStyle

' Add run to paragraph
paragraph.AddChild(textRun)

' Add paragraph to document
doc.AddParagraph(paragraph)

' Export new Word document
doc.SaveAs("customizedReflectionEffect.docx")
$vbLabelText   $csharpLabel

使用自訂屬性能達成什麼效果?

上方的客製化反射效果範例呈現出獨特的金黃色調反射,進一步提升了文件的頂級質感。 透過將不透明度漸層從 0% 調整至 100%,反射效果會產生反向淡入淡出效果,即反射影像在遠離文字時會變得更為鮮明。 此技巧非常適合用於製作醒目的標題或突顯重要公告。

顯示

反射效果的最佳實踐

在Professional文件中呈現反射效果時,請遵循以下準則:

細膩往往最有效:針對商務文件,請使用較低的背景不透明度值(20-40%),以營造細膩的反射效果,既能提升視覺效果又不致造成干擾。 請將更強烈的修辭效果保留給視覺衝擊至關重要的行銷材料或簡報。

配合文件風格:將反射屬性與文件的整體設計保持一致。 正式文件宜採用簡潔的垂直倒影且模糊效果極小;創意素材則可運用傾斜角度與彩色倒影以營造藝術效果。

效能考量:若使用高模糊半徑值進行複雜的反射效果,可能會增加檔案大小及處理時間。對於含有大量反射元素的文件,請測試效能並據此調整屬性。

無障礙意識:請謹記,如反射效果等裝飾性效果應旨在強化而非取代清晰的溝通。 請確保原文內容保持高度可讀性,特別是在製作需符合無障礙標準的文件時。

常見問題

如何在 C# 中為文字添加反射效果?

透過 IronWord,您可以建立 TextStyle 物件,並將 Reflection 物件設定至 ReflectionEffect 屬性,藉此添加反射效果。只需實例化 Reflection 類別並將其指派給您的文字樣式,IronWord 便會自動處理所有複雜的渲染作業。

要應用文字鏡像效果,最簡單的方法是什麼?

最快速的方法是使用 IronWord 的單行實作:new IronWord.WordDocument().AddText("您的文字").Style = new IronWord.Models.TextStyle(){ TextEffect = new IronWord.Models.TextEffect(){ ReflectionEffect = new IronWord.Models.Reflection() } }。這將立即套用預設的反射效果。

我可以自訂反射效果的屬性嗎?

是的,IronWord 的 Reflection 類別提供了多種可配置屬性,用以調整反射效果的外觀,包括不透明度淡入淡出、與文字的距離、模糊設定以及透明度等級。您可以微調這些屬性,以打造符合特定設計需求的獨特視覺效果。

預設的反射效果看起來如何?

IronWord 的預設反射效果會在文字下方產生一幅細微的鏡像,並自動淡入淡出。預設配置包含適當的模糊與透明度設定,能與各種字型大小和樣式完美搭配,因此無需額外調整即可適用於大多數商務文件。

為何應使用 TextStyle 物件來實現反射效果?

IronWord 中的 TextStyle 物件是所有文字格式設定的核心配置點。這種將樣式與內容分離的設計,讓您能在多個文字元素上重複使用相同的反射效果,確保一致性,並透過修改單一樣式物件即可輕鬆地全面更新效果。

哪些類型的文件能從反射效果中受益?

反射效果特別適用於 Professional 文件中的標題、副標題以及強調關鍵資訊。IronWord 的反射功能模擬文字置於光面上的效果,營造出優雅的外觀,不僅能提升文件的呈現效果,更能引導讀者的注意力聚焦於重要內容。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 44,829 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronWord
執行範例 觀看您的資料轉為 WORD 文件。