Fill the underline decoration with a solid color 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="underlineTextBlock" 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)
         {

             TextDecorationCollection myCollection = new TextDecorationCollection();
             TextDecoration myUnderline = new TextDecoration();
             myUnderline.Location = TextDecorationLocation.Underline;

             // Set the solid color brush.
             myUnderline.Pen = new Pen(Brushes.Red, 1);
             myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended;

             // Set the underline decoration to the text block.
             myCollection.Add(myUnderline);
             underlineTextBlock.TextDecorations = myCollection;
         }

    }
}

   
    
     


Fill the strikethrough decoration with a solid color 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="strikethroughTextBlock" 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 solid color brush.
             TextDecorationCollection myCollection = new TextDecorationCollection();
             TextDecoration myStrikeThrough = new TextDecoration();
             myStrikeThrough.Location = TextDecorationLocation.Strikethrough;

             // Set the solid color brush.
             myStrikeThrough.Pen = new Pen(Brushes.Blue, 1);
             myStrikeThrough.PenThicknessUnit = TextDecorationUnit.FontRecommended;

             // Set the underline decoration to the text block.
             myCollection.Add(myStrikeThrough);
             strikethroughTextBlock.TextDecorations = myCollection;
         }

    }
}

   
    
     


Put Rectangle into TextBlock

image_pdfimage_print


   
  
<Page x:Class="WpfApplication1.Page1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Page1">
    <Grid>
        <Button Height="23" Margin="12,12,0,0" Name="button1" VerticalAlignment="Top" 
                HorizontalAlignment="Left" Width="76" Click="button1_Click">Button</Button>
        <TextBlock
            FontSize="16"
            Name="textBlock1"
            VerticalAlignment="Center"
            HorizontalAlignment="Center"
            xml:space="preserve"><Bold>Goodbye</Bold> world, 
             <Rectangle Width="20" Height="20" Fill="Blue"/> hello <Italic>Mars!</Italic></TextBlock>
    </Grid>
</Page>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Please don’t click this button again");
        }
    }
}

   
    
     


Set ToolTip text for TextBlock

image_pdfimage_print


   
     

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="160" Width="300">

    <Grid>
            <TextBlock Foreground="DarkGray" 
                       VerticalAlignment="Center" 
                       HorizontalAlignment="Center"
                       ToolTip="This is a custom tooltip"
                       Text="Mouse Over for tooltip"/>
    </Grid>
    
</Window>

   
    
    
    
    
     


Set Text value for TextBlock

image_pdfimage_print


   
     

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="160" Width="300">
    <Grid>
            <TextBlock Foreground="DarkGray" 
                       VerticalAlignment="Center" 
                       HorizontalAlignment="Center"
                       ToolTip="This is a custom tooltip"
                       Text="Mouse Over for tooltip"/>
    </Grid>
    
</Window>

   
    
    
    
    
     


Animates the position of the TextEffect

image_pdfimage_print
   
     

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="TextEffect Sample" Background="SteelBlue">

  <StackPanel Margin="40">
    <Border Name="TextBorder" HorizontalAlignment="Center"
      VerticalAlignment="Center">
      <TextBlock 
        FontSize="60"
        Margin="50"
        Foreground="White">
        Windows Vista

        <TextBlock.Triggers>
          <EventTrigger RoutedEvent="TextBlock.Loaded">
            <EventTrigger.Actions>
            <BeginStoryboard>
              <Storyboard>
                <ParallelTimeline RepeatBehavior="Forever">

                <Int32AnimationUsingKeyFrames
                  Storyboard.TargetName="MyTextEffect"
                  Storyboard.TargetProperty="PositionStart"
                  Duration="0:0:13"
                  AutoReverse="True"
                  RepeatBehavior="Forever">
                  <Int32AnimationUsingKeyFrames.KeyFrames>
                    <DiscreteInt32KeyFrame Value="0" KeyTime="0:0:0" />
                    <DiscreteInt32KeyFrame Value="1" KeyTime="0:0:1" />
                    <DiscreteInt32KeyFrame Value="2" KeyTime="0:0:2" />
                    <DiscreteInt32KeyFrame Value="3" KeyTime="0:0:3" />
                    <DiscreteInt32KeyFrame Value="4" KeyTime="0:0:4" />
                    <DiscreteInt32KeyFrame Value="5" KeyTime="0:0:5" />
                    <DiscreteInt32KeyFrame Value="6" KeyTime="0:0:6" />
                    <DiscreteInt32KeyFrame Value="7" KeyTime="0:0:7" />
                    <DiscreteInt32KeyFrame Value="8" KeyTime="0:0:8" />
                    <DiscreteInt32KeyFrame Value="9" KeyTime="0:0:9" />
                    <DiscreteInt32KeyFrame Value="10" KeyTime="0:0:10" />
                    <DiscreteInt32KeyFrame Value="11" KeyTime="0:0:11" />
                    <DiscreteInt32KeyFrame Value="12" KeyTime="0:0:12" />
                  </Int32AnimationUsingKeyFrames.KeyFrames>
                </Int32AnimationUsingKeyFrames>
                </ParallelTimeline>
              </Storyboard>
            </BeginStoryboard>
            </EventTrigger.Actions>
          </EventTrigger>
        </TextBlock.Triggers>
      </TextBlock>

    </Border>
  </StackPanel>
</Page>