Elliptical Arc

image_pdfimage_print


   
   
<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.SampleViewer"
    Title="  Examples" >

   <Canvas> 
          <Path Stroke="Black" StrokeThickness="1">
            <Path.Data>
              <PathGeometry>
                <PathGeometry.Figures>
                  <PathFigureCollection>
                    <PathFigure StartPoint="10,100">
                      <PathFigure.Segments>
                        <PathSegmentCollection>
                          <ArcSegment Size="100,50" RotationAngle="45" IsLargeArc="True" SweepDirection="CounterClockwise" Point="200,100" />
                        </PathSegmentCollection>
                      </PathFigure.Segments>
                    </PathFigure>
                  </PathFigureCollection>
                </PathGeometry.Figures>
              </PathGeometry>
            </Path.Data>
          </Path>
   </Canvas> 


</Window>

   
    
    
     


Quadratic Bezier Curve with PathFigure

image_pdfimage_print


   
   
<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.SampleViewer"
    Title="  Examples" >

   <Canvas> 
          <Path Stroke="Black" StrokeThickness="1">
            <Path.Data>
              <PathGeometry>
                <PathGeometry.Figures>
                  <PathFigureCollection>
                    <PathFigure StartPoint="10,100">
                      <PathFigure.Segments>
                        <PathSegmentCollection>
                          <QuadraticBezierSegment Point1="200,200" Point2="300,100" />
                        </PathSegmentCollection>
                      </PathFigure.Segments>
                    </PathFigure>
                  </PathFigureCollection>
                </PathGeometry.Figures>
              </PathGeometry>
            </Path.Data>
          </Path>
   </Canvas> 


</Window>

   
    
    
     


Creates a composite shape from three geometries. This GeometryGroup has a FillRule of NonZero

image_pdfimage_print


   
   
<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.SampleViewer"
    Title="  Examples" >

   <Canvas> 
      <Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
        <Path.Data>
          <GeometryGroup FillRule="Nonzero">
            <LineGeometry StartPoint="10,10" EndPoint="50,30" />
            <EllipseGeometry Center="40,70" RadiusX="30" RadiusY="30" />              
            <RectangleGeometry Rect="30,55 100 30" />
          </GeometryGroup>
        </Path.Data>
      </Path>

   </Canvas> 


</Window>

   
    
    
     


Creates a composite shape from three geometries

image_pdfimage_print


   
   

<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.SampleViewer"
    Title="  Examples" >

   <Canvas> 

      <Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
        <Path.Data>
          <GeometryGroup FillRule="EvenOdd">
            <LineGeometry StartPoint="10,10" EndPoint="50,30" />
            <EllipseGeometry Center="40,70" RadiusX="30" RadiusY="30" />              
            <RectangleGeometry Rect="30,55 100 30" />
          </GeometryGroup>
        </Path.Data>
      </Path>

   </Canvas> 


</Window>

   
    
    
     


Add Thickness for Padding

image_pdfimage_print


   
  

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="250" Width="250" Loaded="Window_Loaded">
    <Canvas Name="canvas1">
    </Canvas>
</Window>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{

    public partial class Window1 : Window
    {
        Button button1 = null;
        Button button2 = null;
        Button button3 = null;

        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            button1 = new Button { Content = "Button", Width = 70, Height = 23 };
            Canvas.SetLeft(button1, 119);
            Canvas.SetTop(button1, 24);
            canvas1.Children.Add(button1);
            button2 = new Button { Content = "Wider" };
            Canvas.SetLeft(button2, 44);
            Canvas.SetTop(button2, 69);
            canvas1.Children.Add(button2);
            button3 = new Button { Content = "Button" };
            Canvas.SetLeft(button3, 78);
            Canvas.SetTop(button3, 119);
            button3.Padding = new Thickness(10, 2, 10, 2);
            canvas1.Children.Add(button3);
        }
    }
}

   
    
     


Page Loaded event

image_pdfimage_print


   
  
<Page       x:Class="WpfApplication1.StartPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

      Loaded="Init" />
//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;

namespace WpfApplication1
{
    public partial class StartPage : Page
    {
        TextBlock txtElement;
        StackPanel rootPanel;
        Button aButton;
        void Init(object sender, EventArgs args)
        {
            rootPanel = new StackPanel();
            txtElement = new TextBlock();
            aButton = new Button();
            aButton.Content = "Press me";
    
            rootPanel.Children.Add(txtElement);
            rootPanel.Children.Add(aButton);
        }
    }
}