<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>
Windows Presentation Foundation
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>