如何在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

使用IronWord的簡單API,為C#中的文字應用類似鏡面的反射效果。 只需一行程式碼即可建立專業的文字反射效果,模擬文字在表面反射以增強視覺深度。

快速開始:在C#中為文字應用反射效果

只需一行程式碼使用IronWord,就可以為任何文字應用預設的反射效果。 立即開始——不需要複雜的設置或樣板程式碼。

  1. 使用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

我如何新增反射效果?

要應用反射效果,建立一個TextEffect。 然後建立一個Run。 將Paragraph。 這遵循文件層次結構:DocumentParagraphRunTextContent

反射效果通過為重要的文字元素新增深度和視覺興趣來增強文件呈現。 這種效果特別適用於標題、標題和強調專業文件中的關鍵資訊。 反射模擬文字坐在光滑表面上,創造出優雅而現代的外觀,吸引讀者的注意。

為什麼建立一個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顯示使用反射效果的'Hello World'文字,創造出在下方的鏡像半透明副本

我可以配置哪些反射效果的屬性?

反射效果提供了一系列可調屬性,以滿足不同的設計需求。 了解這些屬性可以讓您建立與您的特定文件風格量身定制的獨特視覺效果。 每個屬性控制反射的不同方面,從其位置和角度到其透明度和顏色。 請參閱以下列表,查看每個屬性的詳細說明:

哪些屬性控制反射的外觀?

  • SchemeColor: 獲取或設置反射效果的方案顏色。 用任何顏色為反射染上色彩,以實現水或金屬表面效果。

  • HorizontalSkewAngle: 獲取或設置水平偏斜角度(單位為度)。 建立視角效果,使反射遠離遠處消退。

  • HorizontalScalingFactor: 獲取或設置水平縮放因子。 值低於100表示壓縮; 值高於100表示拉伸。

  • DistanceFromText: 獲取或設置距離(單位為點,每點1/72英寸)。 較小的值建立緊密的反射; 較大的值模擬遠處的表面。

  • DirectionAngle: 獲取或設置方向角度(單位為度)。 確定顯示光源的方向。

  • FadeDirectionAngle: 獲取或設置漸變方向(單位為度)。 控制地板反射的垂直漸變或水面效果的斜角漸變。

  • EndPosition: 獲取或設置終止位置。 確定反射在哪裡完全淡出。

  • StartPosition: 獲取或設置起始位置。 通常是0,立即開始在文字下方。

  • EndingOpacity: 獲取或設置結束不透明度。 較低的值創造出逐漸消退為透明的微妙反射。

  • VerticalScalingFactor: 獲取或設置垂直縮放因子。 負值反轉文字; 大小控制高度。

  • StartingOpacity: 獲取或設置起始不透明度。 較高的值創造出更強的初始反射。

  • Alignment: 獲取或設置對齊。 從多個選項中選擇位置,將反射相對於文字定位。

  • BlurRadius: 獲取或設置模糊半徑(單位為點,每點1/72英寸)。 較高的值創造出更柔和、更模糊的反射。

  • VerticalSkewAngle: 獲取或設置垂直偏斜角度(單位為度)。 用於建立傾斜的反射效果。

如何建立自定義反射效果?

自定義反射效果允許您匹配您的組織品牌或建立獨特的視覺風格。 以下範例展示了一個金色反射,具有特定的定位和不透明度設置,為證書、獎項或高級文件標題創造專業外觀。

: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%,反射創造了一個反向淡出效果,即反射隨著遠離文字而變得更強。 這種技術適用於建立突出的標題或強調重要公告。

Word文件顯示'自定義反射'文字,應用了灰色鏡像反射效果

反射效果的最佳實踐

在專業文件中實施反射效果時,請考慮以下指導方針:

微妙通常是最佳選擇:對於商業文件,使用較低的結束不透明度值(20-40%),以建立增強但不分散注意的微妙反射。 保留更強的效果用於視覺效果至關重要的營銷材料或演示。

匹配您的文件風格:請將反射屬性與您文件的整體設計對齊。 正式的文件受益於簡單的垂直反射,模糊度最小,而創意材料可以使用傾斜角度和彩色反射來達到藝術效果。

性能考慮:具有高模糊半徑值的複雜反射效果可能增加文件大小和處理時間。對於包含大量反射元素的文件,請測試性能並相應調整屬性。

可存取性意識:記住像反射這樣的裝飾效果應該是用來增強而不是取代清晰的交流。 確保您的主要文字保持高度可讀,尤其是在建立需要符合無障礙標準的文件時。

常見問題

如何在C#中為文字新增反射效果?

使用IronWord,您可以通過建立一個TextStyle物件並填充ReflectionEffect屬性為Reflection物件來新增反射效果。只需實例化Reflection類並將其分配給您的文字樣式,IronWord會自動處理所有複雜的渲染。

應用文字反射效果最簡單的方法是什麼?

最快的方法是使用IronWord的一行實現:new IronWord.WordDocument().AddText("Your Text").Style = new IronWord.Models.TextStyle(){ TextEffect = new IronWord.Models.TextEffect(){ ReflectionEffect = new IronWord.Models.Reflection() } }。這會立即應用預設的反射效果。

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

可以,IronWord的Reflection類提供多種可配置屬性來調整反射的外觀,包括不透明度漸變、與文字的距離、模糊設置和透明度級別。您可以微調這些屬性,以建立符合您特定設計需求的獨特視覺效果。

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

IronWord的預設反射在文字下方建立一個微妙的鏡像,具有自動不透明度漸變。預設配置包括適當的模糊和透明設置,適用於各種字體大小和樣式,使其適合大多數商業文件而無需額外自定義。

為什麼我應該使用TextStyle物件來實現反射效果?

IronWord中的TextStyle物件作為所有文字格式化的中央配置點。這種樣式與內容分離的方式使您可以在多個文字元素中重用相同的反射效果,確保一致性並通過修改單一樣式物件來輕鬆更新效果。

什麼型別的文件適合反射效果?

反射效果特別適合用於專業文件中的標題、主題和強調重要資訊。IronWord的反射功能模擬文字置於光亮表面上的效果,創造出優雅的外觀,增強文件表現並吸引讀者的注意力到重要元素。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 48,355 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明嗎? PM > Install-Package IronWord
運行範例觀看您的資料變成Word檔。