TextGeometry as Resource
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:WpfApplication1.TextGeometryDemo"
Title="TextGeometry Demo">
<Window.Resources>
<src:TextGeometry x:Key="txtHollow" Text="Hollow"
FontFamily="Times New Roman"
FontSize="192" FontWeight="Bold" />
<src:TextGeometry x:Key="txtShadow" Text="Shadow"
FontFamily="Times New Roman"
FontSize="192" FontWeight="Bold" />
</Window.Resources>
<TabControl>
<TabItem Header="Hollow">
<Path Stroke="Blue" StrokeThickness="5"
Data="{Binding Source={StaticResource txtHollow}, Path=Geometry}" />
</TabItem>
</TabControl>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Globalization
Imports System.Windows
Imports System.Windows.Media
Namespace WpfApplication1.TextGeometryDemo
Public Class TextGeometry
Private txt As String = ""
Private fntfam As New FontFamily()
Private fntstyle As FontStyle = FontStyles.Normal
Private fntwt As FontWeight = FontWeights.Normal
Private fntstr As FontStretch = FontStretches.Normal
Private emsize As Double = 24
Private ptOrigin As New Point(0, 0)
Public Property Text() As String
Get
Return txt
End Get
Set
txt = value
End Set
End Property
Public Property FontFamily() As FontFamily
Get
Return fntfam
End Get
Set
fntfam = value
End Set
End Property
Public Property FontStyle() As FontStyle
Get
Return fntstyle
End Get
Set
fntstyle = value
End Set
End Property
Public Property FontWeight() As FontWeight
Get
Return fntwt
End Get
Set
fntwt = value
End Set
End Property
Public Property FontStretch() As FontStretch
Get
Return fntstr
End Get
Set
fntstr = value
End Set
End Property
Public Property FontSize() As Double
Get
Return emsize
End Get
Set
emsize = value
End Set
End Property
Public Property Origin() As Point
Get
Return ptOrigin
End Get
Set
ptOrigin = value
End Set
End Property
Public ReadOnly Property Geometry() As Geometry
Get
Dim formtxt As New FormattedText(Text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, New Typeface(FontFamily, FontStyle, FontWeight, FontStretch), FontSize, Brushes.Black)
Return formtxt.BuildGeometry(Origin)
End Get
End Property
Public ReadOnly Property PathGeometry() As PathGeometry
Get
Return PathGeometry.CreateFromGeometry(Geometry)
End Get
End Property
End Class
End Namespace
Related examples in the same category