Use a PathGeometry object to highlight displayed text. : Geometry « Windows Presentation Foundation « C# / C Sharp






Use a PathGeometry object to highlight displayed text.

Use a PathGeometry object to highlight displayed text.
  

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="WpfApplication1.Window1"
  Title="Using a Path Geometry to Highlight Text"
  Background="PowderBlue">

  <StackPanel>
      <Button Margin="10" Grid.Column="2" Grid.Row="0" FontSize="16" Click="OnDisplayTextClick">Display Text</Button>
    <Canvas Margin="20" Height="150">
      <Path Canvas.Top="15" Canvas.Left="15" Stroke="SteelBlue" StrokeThickness="3" Fill="LightSteelBlue" Name="path" />
      <Ellipse Canvas.Top="0" Canvas.Left="0" Width="30" Height="30">
        <Ellipse.Fill>
          <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
            <RadialGradientBrush.GradientStops>
              <GradientStop Color="Yellow" Offset="0.25" />
              <GradientStop Color="Transparent" Offset="1" />
            </RadialGradientBrush.GradientStops>
          </RadialGradientBrush>
        </Ellipse.Fill>

        <Ellipse.RenderTransform>
          <MatrixTransform />
        </Ellipse.RenderTransform>
        <Ellipse.Triggers>
          <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <EventTrigger.Actions>
            <BeginStoryboard>
              <Storyboard x:Name="storyboard">
                <MatrixAnimationUsingPath 
                  x:Name="matrixAnimation"
                  Duration="0:00:40"
                  RepeatBehavior="Forever"
                  Storyboard.TargetProperty="RenderTransform.Matrix" />
              </Storyboard>
            </BeginStoryboard>
            </EventTrigger.Actions>
          </EventTrigger>
        </Ellipse.Triggers>
      </Ellipse>
    </Canvas>
  </StackPanel>
</Window>

//File:Window.xaml.cs

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

namespace WpfApplication1
{
    public partial class Window1 : Window
    {     
        public Window1()
        {
            InitializeComponent();
        }

        public void OnDisplayTextClick(object sender, EventArgs e)
        {
            FormattedText formattedText = new FormattedText(
                "asdf",
                CultureInfo.GetCultureInfo("en-us"),
                FlowDirection.LeftToRight,
                new Typeface("Verdana"),
                96,
                Brushes.Black);

            formattedText.SetFontWeight(FontWeights.Bold);

            Geometry geometry = formattedText.BuildGeometry(new Point(0, 0));

            PathGeometry pathGeometry = geometry.GetFlattenedPathGeometry();

            path.Data = pathGeometry;

            matrixAnimation.PathGeometry = pathGeometry;
        }
    }
}

   
    
  








Related examples in the same category

1.LineGeometryLineGeometry
2.EllipseGeometry
3.RectangleGeometryRectangleGeometry
4.Animate GeometryDrawing ExamplesAnimate GeometryDrawing Examples
5.CombinedGeometry for Path.Data and DrawingBrush for Path.FillCombinedGeometry for Path.Data and DrawingBrush for Path.Fill
6.Combines two geometries using the XOR combine modeCombines two geometries using the XOR combine mode
7.Combines two geometries using the union combine modeCombines two geometries using the union combine mode
8.Combines two geometries using the exclude combine modeCombines two geometries using the exclude combine mode
9.Geometry Transform for RectangleGeometry Transform for Rectangle
10.Geometry Transform for PathGeometry Transform for Path
11.Geometry Used with a DrawingBrush
12.Geometry Used as a Clip
13.Tiled Geometry
14.Ellipse Geometry DemoEllipse Geometry Demo
15.LineGeometry DemoLineGeometry Demo
16.Use PolyBezierSegment to Simulated CircleUse PolyBezierSegment to Simulated Circle
17.Converting text to geometryConverting text to geometry