Create an animated Popup control.

   
     

<Window x:Class="SDKSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="AnimatedPopup">
  <StackPanel>
    <CheckBox Name="myCheckBox" Margin="20,20,0,0" Content="Select CheckBox to see Popup"/>
    <Button HorizontalAlignment="Left" Width="200" Margin="20,10,0,0">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation 
                Storyboard.TargetName="theTransform"
                Storyboard.TargetProperty="(RotateTransform.Angle)" 
                From="0" To="360" Duration="0:0:5" AutoReverse="True"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>
      Click to see the Popup animate
    </Button>


  </StackPanel>
</Window>

   
    
    
    
    
     


Draw a Sequence of Connected Lines


   
  


<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="270" Width="300" Loaded="Window_Loaded">
    <Canvas>
        <TextBlock Canvas.Top="40" Canvas.Left="20"
                   FontSize="14" Text="Static Points Collection" />
        <Polyline Stroke="Black" StrokeThickness="3" 
                  Points="0,0 300,10 300,10 10,10 10,25
                  250,250 255,85 250,40 205,85 200,40 155,85 35,90" />
        <TextBlock Canvas.Top="150" Canvas.Left="20" Text="Programmatic Points Collection" />
        <Polyline Name="plLine" Stroke="Black" StrokeThickness="3" />
    </Canvas>
</Window>
//File:Window.xaml.cs
using System.Windows;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
         
            plLine.Points.Add(new Point(10, 140));
            plLine.Points.Add(new Point(270, 140));
            plLine.Points.Add(new Point(10, 175));
            plLine.Points.Add(new Point(10, 220));
            plLine.Points.Add(new Point(125, 220));
        }
    }
}

   
    
     


Populate the PointsCollection of the PolyLine


   
  


<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="270" Width="300" Loaded="Window_Loaded">
    <Canvas>
        <TextBlock Canvas.Top="40" Canvas.Left="20"
                   FontSize="14" Text="Static Points Collection" />
        <Polyline Stroke="Black" StrokeThickness="3" 
                  Points="0,0 300,10 300,10 10,10 10,25
                  250,250 255,85 250,40 205,85 200,40 155,85 35,90" />
        <TextBlock Canvas.Top="150" Canvas.Left="20" Text="Programmatic Points Collection" />
        <Polyline Name="plLine" Stroke="Black" StrokeThickness="3" />
    </Canvas>
</Window>
//File:Window.xaml.cs
using System.Windows;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
         
            plLine.Points.Add(new Point(10, 140));
            plLine.Points.Add(new Point(270, 140));
            plLine.Points.Add(new Point(10, 175));
            plLine.Points.Add(new Point(10, 220));
            plLine.Points.Add(new Point(125, 220));
        }
    }
}

   
    
     


Create a simple polyline, a closed polyline. And a Sine curve in code.












//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;

namespace WpfApplication1
{
public partial class Polylines : Window
{
public Polylines()
{
InitializeComponent();
for (int i = 0; i < 70; i++) { double x = i * Math.PI; double y = 40 + 30 * Math.Sin(x / 10); polyline1.Points.Add(new Point(x, y)); } } } } [/csharp]

Polyline corner is cut off (beveled) because the miter limit is set to 1


   
             

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="Microsoft.Samples.Graphics.RectangleExample"
    WindowTitle="Example">
  <Canvas>


    <Polyline
      Points="0,10 50,10 20,35"
      Stroke="#9999CC"
      StrokeThickness="20"
      StrokeMiterLimit="2"
      Canvas.Top="30"
      Canvas.Left="250"/>

  </Canvas>
</Page>

   
    
    
    
    
    
    
    
    
    
    
    
    
     


StrokeStartLineCap for Polyline


   
     

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="300" Width="400">
    <UniformGrid Columns="3" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Polyline Margin="10" Stroke="Black" StrokeThickness="8" StrokeEndLineCap="Round" StrokeStartLineCap="Round" StrokeLineJoin="Round" StrokeDashCap="Round" StrokeDashArray="10 2" StrokeDashOffset="10" 
        Points="10,11 100,0 100,100 0,100 0,20 80,20 80,80 20,80, 120,40 60,410 60,60 40,60" />
    </UniformGrid>
</Window>

   
    
    
    
    
     


Bevel StrokeLineJoin Polyline


   
     

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="300" Width="400">
    <UniformGrid Columns="3" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Polyline Margin="10" Stroke="DarkCyan" StrokeThickness="8" StrokeLineJoin="Bevel" Points="10,0 100,10 100,100 0,100 10,20 80,20 80,80 20,80, 120,40 60,40 60,60 40,60" />
    </UniformGrid>
</Window>