TextGeometry as Resource : Resource « Windows Presentation Foundation « C# / C Sharp






TextGeometry as Resource

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: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);
            }
        }

    }
}

   
    
  








Related examples in the same category

1.Use outter resource or inner resource
2.Window level resource
3.Button style as Window resourceButton style as Window resource
4.Event Triggers as ResourceEvent Triggers as Resource
5.Reuse Font With ResourcesReuse Font With Resources
6.Define Double value as resourceDefine Double value as resource
7.Add a logical resource to the window's resource dictionaryAdd a logical resource to the window's resource dictionary
8.Font Size ResourcesFont Size Resources
9.Use EnvironmentInfo as ResourceUse EnvironmentInfo as Resource
10.Dynamic Resource: SystemColors.InactiveCaptionBrushKeyDynamic Resource: SystemColors.InactiveCaptionBrushKey
11.Load Resource for Application
12.No Logical ResourcesNo Logical Resources
13.Logical ResourcesLogical Resources
14.Relative pack URI referring to external component for a ResourceRelative pack URI referring to external component for a Resource
15.Find Control Styles with FindResource()Find Control Styles with FindResource()
16.Retrieving assembly manifest resources
17.Get Resource Names from AssemblyGet Resource Names from Assembly
18.Find Resource with FindResourceFind Resource with FindResource
19.Create Collection based Resource for data bindingCreate Collection based Resource for data binding
20.Wrap collection based resource in a CollectionViewSourceWrap collection based resource in a CollectionViewSource
21.Add event handler to StackPanel in StackPanel resourceAdd event handler to StackPanel in StackPanel resource
22.Add Event handler in Panel ResourceAdd Event handler in Panel Resource
23.DataGridView and ResourceDataGridView and Resource
24.Dynamic ResourceDynamic Resource
25.Load Assembly ResourcesLoad Assembly Resources
26.BitmapImage as ResourcesBitmapImage as Resources
27.Cropped image as Resource
28.Load Xaml ResourceLoad Xaml Resource
29.Use Resources.Add to add static resouce from codeUse Resources.Add to add static resouce from code
30.Event Setter from ResourcesEvent Setter from Resources