Fill the overline decoration with a linear gradient brush in C#

image_pdfimage_print


   
  

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="TextDecorationExample.Window1"
  Title="TextDecoration Example"
  Width="720"
  Height="400"
  Loaded="WindowLoaded">
  <StackPanel>

      <TextBlock Name="overlineTextBlock" FontSize="24" Width="180" VerticalAlignment="Center">The lazy dog</TextBlock>

  </StackPanel>
</Window>
//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Media;

namespace TextDecorationExample
{
    public partial class Window1 : Window
    {
         private void WindowLoaded(object sender, EventArgs e)
         {
             // Fill the overline decoration with a linear gradient brush.
             TextDecorationCollection myCollection = new TextDecorationCollection();
             TextDecoration myOverline = new TextDecoration();
             myOverline.Location = TextDecorationLocation.OverLine;

             // Set the linear gradient brush.
             Pen myPen = new Pen();
             myPen.Brush = new LinearGradientBrush(Colors.LimeGreen, Colors.Yellow, 0);
             myPen.Thickness = 3;
             myOverline.Pen = myPen;
             myOverline.PenThicknessUnit = TextDecorationUnit.FontRecommended;

             // Set the overline decoration to the text block.
             myCollection.Add(myOverline);
             overlineTextBlock.TextDecorations = myCollection;
         }

    }
}