Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

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.vb Imports System Imports System.Globalization Imports System.Windows Imports System.Windows.Media Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Public Sub New()       InitializeComponent()     End Sub     Public Sub OnDisplayTextClick(sender As Object, e As EventArgs)       Dim formattedText As New FormattedText("asdf", CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, New Typeface("Verdana"), 96, Brushes.Black)       formattedText.SetFontWeight(FontWeights.Bold)       Dim geometry As Geometry = formattedText.BuildGeometry(New Point(0, 0))       Dim pathGeometry As PathGeometry = geometry.GetFlattenedPathGeometry()       path.Data = pathGeometry       matrixAnimation.PathGeometry = pathGeometry     End Sub   End Class End Namespace