Use a PathGeometry object to highlight displayed text. : Geometry « Windows Presentation Foundation « VB.Net Tutorial






<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
WPF Use A Path Geometry Object To Highlight Displayed Text








16.77.Geometry
16.77.1.GeometryCombineMode = UnionGeometryCombineMode = Union
16.77.2.GeometryCombineMode = IntersectGeometryCombineMode = Intersect
16.77.3.GeometryCombineMode = XorGeometryCombineMode = Xor
16.77.4.GeometryCombineMode = ExcludeGeometryCombineMode = Exclude
16.77.5.Combine two circles into one shape using CombinedGeometry: UnionCombine two circles into one shape using CombinedGeometry: Union
16.77.6.Combine two circles into one shape using CombinedGeometry: XorCombine two circles into one shape using CombinedGeometry: Xor
16.77.7.Combine two circles into one shape using CombinedGeometry: IntersectCombine two circles into one shape using CombinedGeometry: Intersect
16.77.8.Combine two circles into one shape using CombinedGeometry: ExcludeCombine two circles into one shape using CombinedGeometry: Exclude
16.77.9.Combine GeometryCombine Geometry
16.77.10.LineGeometry for PathLineGeometry for Path
16.77.11.EllipseGeometry for PathEllipseGeometry for Path
16.77.12.BezierSegment for a PathBezierSegment for a Path
16.77.13.Put EllipseGeometry to GeometryGroupPut EllipseGeometry to GeometryGroup
16.77.14.Put RectangleGeometry to GeometryGroupPut RectangleGeometry to GeometryGroup
16.77.15.Path based on GeometryGroup ResourcePath based on GeometryGroup Resource
16.77.16.GeometryDrawing.BrushGeometryDrawing.Brush
16.77.17.GeometryDrawing.PenGeometryDrawing.Pen
16.77.18.GeometryDrawing with 2 PathFiguresGeometryDrawing with 2 PathFigures
16.77.19.GeometryGroup and DrawingImageGeometryGroup and DrawingImage
16.77.20.GeometryDrawing insize a DrawingGroupGeometryDrawing insize a DrawingGroup
16.77.21.Use the StreamGeometry mini-language to create polylineUse the StreamGeometry mini-language to create polyline
16.77.22.Create a PathGeometry using the PathFigureCollection mini-language.Create a PathGeometry using the PathFigureCollection mini-language.
16.77.23.PolyLineSegment creates a series of straight lines.PolyLineSegment creates a series of straight lines.
16.77.24.LineGeometry vs LineLineGeometry vs Line
16.77.25.RectangleGeometry vs RectangleRectangleGeometry vs Rectangle
16.77.26.EllipseGeometry vs EllipseEllipseGeometry vs Ellipse
16.77.27.Combine geometries is to use the GeometryGroup objectCombine geometries is to use the GeometryGroup object
16.77.28.Geometry GroupGeometry Group
16.77.29.GeometryDrawing Pen and GeometryGeometryDrawing Pen and Geometry
16.77.30.CombinedGeometry GeometryCombineMode='Union'CombinedGeometry GeometryCombineMode='Union'
16.77.31.Reusing GeometryReusing Geometry
16.77.32.Converting text to geometryConverting text to geometry
16.77.33.Use a PathGeometry object to highlight displayed text.Use a PathGeometry object to highlight displayed text.