如何在C#中為文字新增發光效果

How to Add Glow Effect to Text in C

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

發光效果為文字字元創造了一個發光的光環。 這種視覺效果讓文字看起來像是發出柔和輪廓的光。在C#應用程式中,特別是Word文件中,發光效果有助於強調標題、標題和重要內容。 這種效果廣泛應用於演示、營銷材料和專業文件中,當文字需要視覺強調時。

快速入門:快速為文字元素應用發光效果

建立一個TextEffect,並將其分配給您的文字樣式。 一行即可在您的Word文件中建立發光文字。

  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() { GlowEffect = new Glow() { GlowColor = IronWord.Models.Color.Aqua, GlowRadius = 10 } };
    Paragraph paragraph = new Paragraph();
    Run textRun = new Run(new TextContent("Glowing Text"));
    textRun.Style = textStyle;
    paragraph.AddChild(textRun);
    doc.AddParagraph(paragraph);
    doc.SaveAs("glow.docx");
  3. 部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronWord,透過免費試用

    arrow pointer

如何在C#中為文字新增發光效果?

要應用發光效果,建立一個GlowEffect。 然後建立一個Run。 將Paragraph。 這遵循文件層次結構:DocumentParagraphRunTextContent。 此方法提供對發光外觀和強度的完全控制。

為什麼首先建立發光物件很重要?

首先建立Glow物件可以在應用前配置所有發光屬性。 這符合關心分離的原則,並提高了程式碼的可維護性。 獨立定義發光屬性允許在多個文字元素之間重用,並根據應用需求進行動態修改。 這種模式符合其他Iron Software產品如何處理類似效果的一致性,維持文件處理工作流程的一致性。

using IronWord;
using IronWord.Models;
using System.Drawing;

public class TextGlowEffectExample
{
    public void ApplyGlowEffect()
    {
        // Create a new Word document
        WordDocument doc = new WordDocument();

        // Add a paragraph with text
        Paragraph paragraph = new Paragraph();
        Text textRun = new Text("This text has a bright glow!");
        paragraph.AddTextRun(textRun);

        // Initialize a new Glow object
        Glow glow = new Glow();

        // Set the properties for the glow effect
        glow.GlowRadius = 15; // Radius of the glow effect in points
        glow.GlowColor = Color.FromArgb(200, 0, 255, 255); // Semi-transparent cyan

        // Create a TextEffect object and assign the glow effect to it
        TextEffect textEffect = new TextEffect();
        textEffect.GlowEffect = glow;

        // Apply the TextEffect to the text
        textRun.Style = new TextStyle();
        textRun.Style.TextEffect = textEffect;

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

        // 保存文件
        doc.SaveAs("glowing-text-example.docx");
    }
}
using IronWord;
using IronWord.Models;
using System.Drawing;

public class TextGlowEffectExample
{
    public void ApplyGlowEffect()
    {
        // Create a new Word document
        WordDocument doc = new WordDocument();

        // Add a paragraph with text
        Paragraph paragraph = new Paragraph();
        Text textRun = new Text("This text has a bright glow!");
        paragraph.AddTextRun(textRun);

        // Initialize a new Glow object
        Glow glow = new Glow();

        // Set the properties for the glow effect
        glow.GlowRadius = 15; // Radius of the glow effect in points
        glow.GlowColor = Color.FromArgb(200, 0, 255, 255); // Semi-transparent cyan

        // Create a TextEffect object and assign the glow effect to it
        TextEffect textEffect = new TextEffect();
        textEffect.GlowEffect = glow;

        // Apply the TextEffect to the text
        textRun.Style = new TextStyle();
        textRun.Style.TextEffect = textEffect;

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

        // 保存文件
        doc.SaveAs("glowing-text-example.docx");
    }
}
Imports IronWord
Imports IronWord.Models
Imports System.Drawing

Public Class TextGlowEffectExample
    Public Sub ApplyGlowEffect()
        ' Create a new Word document
        Dim doc As New WordDocument()

        ' Add a paragraph with text
        Dim paragraph As New Paragraph()
        Dim textRun As New Text("This text has a bright glow!")
        paragraph.AddTextRun(textRun)

        ' Initialize a new Glow object
        Dim glow As New Glow()

        ' Set the properties for the glow effect
        glow.GlowRadius = 15 ' Radius of the glow effect in points
        glow.GlowColor = Color.FromArgb(200, 0, 255, 255) ' Semi-transparent cyan

        ' Create a TextEffect object and assign the glow effect to it
        Dim textEffect As New TextEffect()
        textEffect.GlowEffect = glow

        ' Apply the TextEffect to the text
        textRun.Style = New TextStyle()
        textRun.Style.TextEffect = textEffect

        ' Add the paragraph to the document
        doc.AddParagraph(paragraph)

        ' Save the file
        doc.SaveAs("glowing-text-example.docx")
    End Sub
End Class
$vbLabelText   $csharpLabel
Microsoft Word展示應用了青色發光效果的'Hello World'文字,演示文字發光格式的結果

什麼是發光效果屬性?

了解發光效果屬性對於建立專業外觀的效果至關重要,這些效果增強文件而不會壓倒內容。 適當的許可可確保這些功能在生產環境中無限制地運作。

哪些屬性控制發光外觀?

  • GlowRadius:以點為單位設置發光效果的半徑(1/72英寸)。 值通常範圍在5到30點。 較大的值創造出更加擴散、擴展的發光。 5-10點的半徑創造微妙的高光效果; 20-30點產生戲劇性的光環。

  • GlowColor:設置發光效果的顏色。 接受System.Drawing.Color值,包括用於透明度控制的ARGB。 亮色(青色、黃色、洋紅)創造出充滿活力的效果; 較暗的顏色提供微妙的強調。

如何設置具有Alpha透明度的顏色值?

Alpha透明度創造出自然與背景融合的真實發光效果。 Alpha值範圍從0(透明)到255(不透明)。 這是一個展示不同Alpha值的例子:

using IronWord;
using IronWord.Models;
using System.Drawing;

public class AlphaTransparencyExample
{
    public void DemonstrateAlphaValues()
    {
        WordDocument doc = new WordDocument();

        // Create multiple text samples with different alpha values
        int[] alphaValues = { 50, 100, 150, 200, 255 };

        foreach (int alpha in alphaValues)
        {
            Paragraph para = new Paragraph();
            Text text = new Text($"Alpha: {alpha} - Glow Effect Sample");

            // Create glow with specific alpha transparency
            Glow glow = new Glow
            {
                GlowRadius = 12,
                GlowColor = Color.FromArgb(alpha, 255, 215, 0) // Gold with varying transparency
            };

            // Apply the glow effect
            TextEffect effect = new TextEffect { GlowEffect = glow };
            text.Style = new TextStyle 
            { 
                TextEffect = effect,
                FontSize = 24,
                FontFamily = "Arial"
            };

            para.AddTextRun(text);
            doc.AddParagraph(para);
        }

        doc.SaveAs("alpha-transparency-demo.docx");
    }
}
using IronWord;
using IronWord.Models;
using System.Drawing;

public class AlphaTransparencyExample
{
    public void DemonstrateAlphaValues()
    {
        WordDocument doc = new WordDocument();

        // Create multiple text samples with different alpha values
        int[] alphaValues = { 50, 100, 150, 200, 255 };

        foreach (int alpha in alphaValues)
        {
            Paragraph para = new Paragraph();
            Text text = new Text($"Alpha: {alpha} - Glow Effect Sample");

            // Create glow with specific alpha transparency
            Glow glow = new Glow
            {
                GlowRadius = 12,
                GlowColor = Color.FromArgb(alpha, 255, 215, 0) // Gold with varying transparency
            };

            // Apply the glow effect
            TextEffect effect = new TextEffect { GlowEffect = glow };
            text.Style = new TextStyle 
            { 
                TextEffect = effect,
                FontSize = 24,
                FontFamily = "Arial"
            };

            para.AddTextRun(text);
            doc.AddParagraph(para);
        }

        doc.SaveAs("alpha-transparency-demo.docx");
    }
}
Imports IronWord
Imports IronWord.Models
Imports System.Drawing

Public Class AlphaTransparencyExample
    Public Sub DemonstrateAlphaValues()
        Dim doc As New WordDocument()

        ' Create multiple text samples with different alpha values
        Dim alphaValues As Integer() = {50, 100, 150, 200, 255}

        For Each alpha As Integer In alphaValues
            Dim para As New Paragraph()
            Dim text As New Text($"Alpha: {alpha} - Glow Effect Sample")

            ' Create glow with specific alpha transparency
            Dim glow As New Glow With {
                .GlowRadius = 12,
                .GlowColor = Color.FromArgb(alpha, 255, 215, 0) ' Gold with varying transparency
            }

            ' Apply the glow effect
            Dim effect As New TextEffect With {.GlowEffect = glow}
            text.Style = New TextStyle With {
                .TextEffect = effect,
                .FontSize = 24,
                .FontFamily = "Arial"
            }

            para.AddTextRun(text)
            doc.AddParagraph(para)
        Next

        doc.SaveAs("alpha-transparency-demo.docx")
    End Sub
End Class
$vbLabelText   $csharpLabel

Alpha值指導:

  • 50-100:非常微妙,幾乎不可見,水印風格效果
  • 100-150:柔和的發光,專業的外觀,適合商業文件
  • 150-200:中等強度,適合標題和大標題的平衡
  • 200-255:強烈的發光,對於宣傳材料的高影響需求

有什麼發光效果範例?

發光效果接受ARGB顏色值。 Alpha值控制不透明度。 這些範例展示在不同文件背景下實際的發光應用。 在生產實施之前配置適當的許可金鑰

什麼時候應該使用不同的半徑值?

不同的半徑值用於不同的目的。 小半徑(5-10點)創造出集中於術語或連結的微妙強調效果。 中等半徑(15-20點)適合段落標題和大標題,提供明確的層次結構。 大半徑(25+點)適用於封面頁面或需要最大影響的促銷招募。

這是一個展示半徑應用的實施範例:

public class RadiusExamples
{
    public void CreateRadiusComparison()
    {
        WordDocument doc = new WordDocument();

        // Example 1: Subtle emphasis for inline text
        Paragraph p1 = new Paragraph();
        Text subtleText = new Text("Important: This deadline cannot be extended.");
        subtleText.Style = new TextStyle
        {
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 6,
                    GlowColor = Color.FromArgb(180, 255, 0, 0) // Soft red glow
                }
            }
        };
        p1.AddTextRun(subtleText);

        // Example 2: Section header with medium glow
        Paragraph p2 = new Paragraph();
        Text headerText = new Text("Chapter 1: Getting Started");
        headerText.Style = new TextStyle
        {
            FontSize = 28,
            FontFamily = "Calibri",
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 18,
                    GlowColor = Color.FromArgb(150, 0, 120, 215) // Corporate blue
                }
            }
        };
        p2.AddTextRun(headerText);

        // Example 3: Promotional text with large glow
        Paragraph p3 = new Paragraph();
        Text promoText = new Text("SPECIAL OFFER - LIMITED TIME!");
        promoText.Style = new TextStyle
        {
            FontSize = 36,
            Bold = true,
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 30,
                    GlowColor = Color.FromArgb(220, 255, 255, 0) // Bright yellow
                }
            }
        };
        p3.AddTextRun(promoText);

        doc.AddParagraph(p1);
        doc.AddParagraph(p2);
        doc.AddParagraph(p3);
        doc.SaveAs("radius-examples.docx");
    }
}
public class RadiusExamples
{
    public void CreateRadiusComparison()
    {
        WordDocument doc = new WordDocument();

        // Example 1: Subtle emphasis for inline text
        Paragraph p1 = new Paragraph();
        Text subtleText = new Text("Important: This deadline cannot be extended.");
        subtleText.Style = new TextStyle
        {
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 6,
                    GlowColor = Color.FromArgb(180, 255, 0, 0) // Soft red glow
                }
            }
        };
        p1.AddTextRun(subtleText);

        // Example 2: Section header with medium glow
        Paragraph p2 = new Paragraph();
        Text headerText = new Text("Chapter 1: Getting Started");
        headerText.Style = new TextStyle
        {
            FontSize = 28,
            FontFamily = "Calibri",
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 18,
                    GlowColor = Color.FromArgb(150, 0, 120, 215) // Corporate blue
                }
            }
        };
        p2.AddTextRun(headerText);

        // Example 3: Promotional text with large glow
        Paragraph p3 = new Paragraph();
        Text promoText = new Text("SPECIAL OFFER - LIMITED TIME!");
        promoText.Style = new TextStyle
        {
            FontSize = 36,
            Bold = true,
            TextEffect = new TextEffect
            {
                GlowEffect = new Glow
                {
                    GlowRadius = 30,
                    GlowColor = Color.FromArgb(220, 255, 255, 0) // Bright yellow
                }
            }
        };
        p3.AddTextRun(promoText);

        doc.AddParagraph(p1);
        doc.AddParagraph(p2);
        doc.AddParagraph(p3);
        doc.SaveAs("radius-examples.docx");
    }
}
Public Class RadiusExamples
    Public Sub CreateRadiusComparison()
        Dim doc As New WordDocument()

        ' Example 1: Subtle emphasis for inline text
        Dim p1 As New Paragraph()
        Dim subtleText As New Text("Important: This deadline cannot be extended.")
        subtleText.Style = New TextStyle With {
            .TextEffect = New TextEffect With {
                .GlowEffect = New Glow With {
                    .GlowRadius = 6,
                    .GlowColor = Color.FromArgb(180, 255, 0, 0) ' Soft red glow
                }
            }
        }
        p1.AddTextRun(subtleText)

        ' Example 2: Section header with medium glow
        Dim p2 As New Paragraph()
        Dim headerText As New Text("Chapter 1: Getting Started")
        headerText.Style = New TextStyle With {
            .FontSize = 28,
            .FontFamily = "Calibri",
            .TextEffect = New TextEffect With {
                .GlowEffect = New Glow With {
                    .GlowRadius = 18,
                    .GlowColor = Color.FromArgb(150, 0, 120, 215) ' Corporate blue
                }
            }
        }
        p2.AddTextRun(headerText)

        ' Example 3: Promotional text with large glow
        Dim p3 As New Paragraph()
        Dim promoText As New Text("SPECIAL OFFER - LIMITED TIME!")
        promoText.Style = New TextStyle With {
            .FontSize = 36,
            .Bold = True,
            .TextEffect = New TextEffect With {
                .GlowEffect = New Glow With {
                    .GlowRadius = 30,
                    .GlowColor = Color.FromArgb(220, 255, 255, 0) ' Bright yellow
                }
            }
        }
        p3.AddTextRun(promoText)

        doc.AddParagraph(p1)
        doc.AddParagraph(p2)
        doc.AddParagraph(p3)
        doc.SaveAs("radius-examples.docx")
    End Sub
End Class
$vbLabelText   $csharpLabel

發光效果的常見顏色組合是什麼?

有效的顏色組合取決於文件的目的和品牌形象。 專業文件使用微妙的藍色、灰色或低Alpha值的品牌顏色。 營銷材料使用充滿活力的互補色或高對比度的組合。 使用多個Iron Software產品時,檢查產品更新以確保相容性。

常見顏色組合:

  1. 專業藍色:海軍藍文字配淡藍色發光(RGB:100, 150, 255)
  2. 暖色強調:深棕色文字配金色發光(RGB:255, 200, 50)
  3. 高對比:黑色文字配白色/銀色發光(RGB:220, 220, 220)
  4. 品牌色:公司顏色文字配互補發光
  5. 季節主題:假日的綠色/紅色,萬聖節的橙色/黑色
四個文字範例展現發光效果:水色10pt,天藍色20pt,金色30pt,和自定義綠色40pt半徑

發光效果應增強可讀性,而不是妨礙它。 在不同背景上測試組合並遵循無障礙指南。 對於需要擴展支援的企業應用,探索許可擴展以獲得持續的更新和功能。 當擴展應用程式時,升級選項為增長中的團隊和擴展的需求提供了彈性。

常見問題

如何使用C#在Word文件中為文字新增發光效果?

要使用IronWord新增發光效果,請建立一個包含所需半徑和顏色設置的Glow物件,然後將其嵌入到TextEffect物件中,並將其分配給文字元素的Style.TextEffect屬性。這可以在一行中完成:someTextElement.Style.TextEffect = new IronWord.Models.TextEffect { GlowEffect = new IronWord.Models.Glow { GlowRadius = 8, GlowColor = System.Drawing.Color.FromArgb(180, 0, 128, 255) } };

建立發光文字所需的最小程式碼是什麼?

IronWord允許您通過將文字元素的Style.TextEffect屬性設置為包含已配置Glow物件的新TextEffect來建立發光文字,只需一行程式碼即可。這包括在一個聲明中設置發光半徑和顏色。

我可以自定義發光效果的外觀嗎?

是的,IronWord through Glow物件屬性提供發光效果的完全自定義。您可以調整GlowRadius(以點為單位)來控制發光的大小,並使用System.Drawing.Color和ARGB值設定GlowColor來精確控制顏色和透明度。

為什麼我應該建立一個單獨的Glow物件而不是內聯配置?

在IronWord中建立單獨的Glow物件遵循關注點分離原則,並改善程式碼的可維護性。這種方法允許您在多個文字元素中重用相同的發光配置,並根據應用程式需求動態修改屬性,與其他Iron Software產品在文件處理中的一致模式相匹配。

應用文字發光效果的主要步驟是什麼?

IronWord中的工作流程分為五個步驟:1)下載IronWord C#程式庫,2)將文字效果應用於新文字或現有文字,3)配置Glow物件的半徑和顏色設置,4)將Glow分配給TextEffect物件的GlowEffect屬性,5)將編輯過的Word文件導出為新文件。

哪些型別的文件可以從文字發光效果中受益?

IronWord的發光效果功能特別適合於建立需要視覺強調的演示資料、營銷材料和專業文件。發光光環效果有助於突出Word文件中的標題、標題和重要內容。

Curtis Chau
技術作家

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

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

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

還在滾動?

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