Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

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