Path with Shadow : Path « Windows Presentation Foundation « C# / C Sharp






Path with Shadow

Path with Shadow
  

<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="Shadow">
            <Canvas>
                <Path Fill="DarkGray"
                      Data="{Binding Source={StaticResource txtShadow},Path=Geometry}"
                      Canvas.Left="12" Canvas.Top="12" />
                <Path Stroke="Black" Fill="White" 
                      Data="{Binding Source={StaticResource txtShadow},Path=Geometry}" />
            </Canvas>
        </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.Multiple Subpaths with PathFigureMultiple Subpaths with PathFigure
2.Close Path Command with PathFigureClose Path Command with PathFigure
3.Drawn with a Path Shape with Geometry
4.Vertical LineVertical Line
5.Horizontal LineHorizontal Line
6.Cubic Bezier Curve with BezierSegmentCubic Bezier Curve with BezierSegment
7.Line with PathGeometryLine with PathGeometry
8.Elliptical ArcElliptical Arc
9.Quadratic Bezier Curve with PathFigureQuadratic Bezier Curve with PathFigure
10.Creates a composite shape from three geometries. This GeometryGroup has a FillRule of NonZeroCreates a composite shape from three geometries. This GeometryGroup has a FillRule of NonZero
11.Creates a composite shape from three geometriesCreates a composite shape from three geometries
12.Multiple SubpathsMultiple Subpaths
13.Close Path CommandClose Path Command
14.Elliptical Arc PathElliptical Arc Path
15.Vertical Line with PathVertical Line with Path
16.Horizontal Line with PathHorizontal Line with Path
17.Line with PathLine with Path
18.Combines two geometries using the intersect combine modeCombines two geometries using the intersect combine mode
19.Transform Path defined in Resource
20.Difference between CounterClockwise and ClockwiseDifference between CounterClockwise and Clockwise
21.Path gradient and BezierPath gradient and Bezier
22.Path Angle Animated Button
23.Path Animated ButtonPath Animated Button
24.Squaring The CircleSquaring The Circle
25.Single BezierSingle Bezier
26.Overlapping StarsOverlapping Stars
27.Path Mini LanguagePath Mini Language
28.Overlapping RectanglesOverlapping Rectangles
29.Multiple Line SegmentsMultiple Line Segments
30.Figure With Arcs
31.Counterclockwise (default), small arc (default)Counterclockwise (default), small arc (default)
32.Counterclockwise (default), IsLargeArcCounterclockwise (default), IsLargeArc
33.Clockwise, small arc (default)Clockwise, small arc (default)
34.Clockwise, IsLargeArcClockwise, IsLargeArc
35.Eclipse SunEclipse Sun
36.Mini Language Infinity
37.Large ArcSegmentsLarge ArcSegments
38.Small ArcSegmentSmall ArcSegment
39.Bezier Curve with BezierSegmentBezier Curve with BezierSegment
40.PolyBezierSegment DemoPolyBezierSegment Demo
41.Multiple geometriesMultiple geometries
42.Combined geometries GeometryCombineMode=ExcludeCombined geometries GeometryCombineMode=Exclude
43.Path.Data with LineSegmentPath.Data with LineSegment
44.Path Margin as resourcePath Margin as resource
45.Shorthand Path dataShorthand Path data