TextGeometry as Resource : Resource « Windows Presentation Foundation « C# / CSharp Tutorial






<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:src="clr-namespace:MyNameSpace.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.cs
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Media;

namespace MyNameSpace.TextGeometryDemo
{
    public class TextGeometry
    {
        string txt = "";
        FontFamily fntfam = new FontFamily();
        FontStyle fntstyle = FontStyles.Normal;
        FontWeight fntwt = FontWeights.Normal;
        FontStretch fntstr = FontStretches.Normal;
        double emsize = 24;
        Point ptOrigin = new Point(0, 0);

        public string Text
        {
            set { txt = value; }
            get { return txt; }
        }
        public FontFamily FontFamily
        {
            set { fntfam = value; }
            get { return fntfam; }
        }
        public FontStyle FontStyle
        {
            set { fntstyle = value; }
            get { return fntstyle; }
        }
        public FontWeight FontWeight
        {
            set { fntwt = value; }
            get { return fntwt; }
        }
        public FontStretch FontStretch
        {
            set { fntstr = value; }
            get { return fntstr; }
        }
        public double FontSize
        {
            set { emsize = value; }
            get { return emsize; }
        }
        public Point Origin
        {
            set { ptOrigin = value; }
            get { return ptOrigin; }
        }

        public Geometry Geometry
        {
            get
            {
                FormattedText formtxt = new FormattedText(Text, CultureInfo.CurrentCulture, 
                                      FlowDirection.LeftToRight,
                                      new Typeface(FontFamily, FontStyle,FontWeight, FontStretch), 
                                      FontSize, Brushes.Black);

                return formtxt.BuildGeometry(Origin);
            }
        }

        public PathGeometry PathGeometry
        {
            get
            {
                return PathGeometry.CreateFromGeometry(Geometry);
            }
        }

    }
}
WPF Text Geometry As Resource








24.140.Resource
24.140.1.Use outter resource or inner resourceUse outter resource or inner resource
24.140.2.Window level resourceWindow level resource
24.140.3.Button style as Window resourceButton style as Window resource
24.140.4.Event Triggers as ResourceEvent Triggers as Resource
24.140.5.Reuse Font With ResourcesReuse Font With Resources
24.140.6.Define Double value as resourceDefine Double value as resource
24.140.7.Add a logical resource to the window's resource dictionaryAdd a logical resource to the window's resource dictionary
24.140.8.Font Size ResourcesFont Size Resources
24.140.9.Use EnvironmentInfo as ResourceUse EnvironmentInfo as Resource
24.140.10.Dynamic Resource: SystemColors.InactiveCaptionBrushKeyDynamic Resource: SystemColors.InactiveCaptionBrushKey
24.140.11.Load Resource for ApplicationLoad Resource for Application
24.140.12.No Logical ResourcesNo Logical Resources
24.140.13.Logical ResourcesLogical Resources
24.140.14.Relative pack URI referring to external component for a ResourceRelative pack URI referring to external component for a Resource
24.140.15.Find Control Styles with FindResource()Find Control Styles with FindResource()
24.140.16.TextGeometry as ResourceTextGeometry as Resource
24.140.17.Retrieving assembly manifest resourcesRetrieving assembly manifest resources
24.140.18.Get Resource Names from AssemblyGet Resource Names from Assembly
24.140.19.Find Resource with FindResourceFind Resource with FindResource
24.140.20.Create Collection based Resource for data bindingCreate Collection based Resource for data binding
24.140.21.Wrap collection based resource in a CollectionViewSourceWrap collection based resource in a CollectionViewSource
24.140.22.Add event handler to StackPanel in StackPanel resourceAdd event handler to StackPanel in StackPanel resource
24.140.23.Add Event handler in Panel ResourceAdd Event handler in Panel Resource
24.140.24.DataGridView and ResourceDataGridView and Resource
24.140.25.Dynamic ResourceDynamic Resource
24.140.26.Load Assembly ResourcesLoad Assembly Resources
24.140.27.BitmapImage as ResourcesBitmapImage as Resources
24.140.28.Cropped image as ResourceCropped image as Resource
24.140.29.Load Xaml ResourceLoad Xaml Resource
24.140.30.Use Resources.Add to add static resouce from codeUse Resources.Add to add static resouce from code
24.140.31.Event Setter from ResourcesEvent Setter from Resources
24.140.32.Resource LookupResource Lookup
24.140.33.Style resource with predefined static resourceStyle resource with predefined static resource